版本 0.14.1 (2014年7月11日)#
这是从 0.14.0 发布的一个小版本,包括少量 API 更改、几个新功能、增强功能和性能改进,以及大量错误修复。我们建议所有用户升级到此版本。
亮点包括:
新方法
select_dtypes()用于根据数据类型选择列,以及sem()用于计算均值的标准误差。支持 dateutil 时区(参见 文档)。
在
read_csv()文本解析器中支持忽略整行注释。关于 选项和设置 的新文档部分。
许多错误修复。
API 变化#
现在,在构建 openpyxl 写入器时,Openpyxl 会引发 ValueError,而不是在 pandas 导入时发出警告 (GH 7284)。
对于
StringMethods.extract,当没有找到匹配时,结果 - 仅包含NaN值 - 现在也有dtype=object而不是float(GH 7242)Period对象在使用==与另一个 不是Period的对象进行比较时不再引发TypeError。相反,当使用==比较Period对象与另一个对象时,如果另一个对象不是Period,则返回False。(GH 7376)之前,在
offsets.apply、rollforward和rollback操作中是否重置时间的处理方式在不同的偏移量之间有所不同。随着对所有偏移量支持normalize关键字(见下文),其默认值为 False(保留时间),某些偏移量(BusinessMonthBegin、MonthEnd、BusinessMonthEnd、CustomBusinessMonthEnd、BusinessYearBegin、LastWeekOfMonth、FY5253Quarter、LastWeekOfMonth、Easter)的行为发生了变化:In [6]: from pandas.tseries import offsets In [7]: d = pd.Timestamp('2014-01-01 09:00') # old behaviour < 0.14.1 In [8]: d + offsets.MonthEnd() Out[8]: pd.Timestamp('2014-01-31 00:00:00')
从 0.14.1 版本开始,所有偏移默认保留时间。旧的行为可以通过
normalize=True获得。# new behaviour In [1]: d + offsets.MonthEnd() Out[1]: Timestamp('2014-01-31 09:00:00') In [2]: d + offsets.MonthEnd(normalize=True) Out[2]: Timestamp('2014-01-31 00:00:00')
请注意,对于其他偏移量,默认行为没有改变。
在文本解析中添加回
#N/A N/A作为默认的 NA 值,(从 0.12 版本回归)(GH 5521)在使用
.where进行原地设置时,如果值不是np.nan,则引发TypeError,因为这与像df[mask] = None这样的设置项表达式不一致 (GH 7656)
增强功能#
为
value_counts和nunique添加dropna参数 (GH 5569)。添加
select_dtypes()方法,以允许基于dtype选择列(GH 7316)。请参阅 文档。所有
offsets支持normalize关键字,用于指定offsets.apply、rollforward和rollback是否重置时间(小时、分钟等)或不重置(默认False,保留时间)(GH 7156):import pandas.tseries.offsets as offsets day = offsets.Day() day.apply(pd.Timestamp("2014-01-01 09:00")) day = offsets.Day(normalize=True) day.apply(pd.Timestamp("2014-01-01 09:00"))
PeriodIndex的表示格式与DatetimeIndex相同(GH 7601)StringMethods现在可以在空 Series 上工作 (GH 7242)文件解析器
read_csv和read_table现在忽略由参数comment提供的行注释,该参数仅接受C读取器的一个字符。特别是,它们允许在文件数据开始之前进行注释 (GH 2685)为
read_csv()同时使用chunksize和nrows添加NotImplementedError(GH 6774)。现在存在对公共S3存储桶基本读取的测试 (GH 7281)。
read_html现在支持一个传递给底层解析器库的encoding参数。你可以使用这个参数来读取非ASCII编码的网页 (GH 7323)。read_excel现在支持以与read_csv相同的方式从 URL 读取。 (GH 6809)支持 dateutil 时区,现在可以在整个 pandas 中以与 pytz 时区相同的方式使用。(GH 4688)
In [3]: rng = pd.date_range( ...: "3/6/2012 00:00", periods=10, freq="D", tz="dateutil/Europe/London" ...: ) ...: In [4]: rng.tz Out[4]: tzfile('/usr/share/zoneinfo/Europe/London')
请参阅 文档。
为
Series、DataFrame、Panel和Groupby实现了 ``sem``(均值的标准误差)操作 (GH 6897)将
nlargest和nsmallest添加到Seriesgroupby允许列表中,这意味着你现在可以在SeriesGroupBy对象上使用这些方法 (GH 7053)。所有偏移
apply,rollforward和rollback现在可以处理np.datetime64,之前会导致ApplyTypeError(GH 7452)Period和PeriodIndex可以在其值中包含NaT(GH 7485)支持对
Series、DataFrame和Panel对象进行序列化,这些对象在 item 轴(分别是index、columns和items)上具有非唯一标签 (GH 7370)。改进了对混合空对象的 datetime/timedelta 推断。从 0.13.1 版本开始,对所有空元素的对象索引的解释出现了回归 (GH 7431)
性能#
实验性#
错误修复#
在
DataFrame.where中存在一个对称形状的帧和传递的另一个 DataFrame 的错误 (GH 7506)带有MultiIndex轴的面板索引中的错误 (GH 7516)
在具有重复索引和非精确端点的日期时间切片索引中回归 (GH 7523)
在带有列表的列表和单一类型与混合类型的情况下,setitem 中的 Bug (GH 7551:)
时间操作中未对齐的 Series 的 Bug (GH 7500)
在分配不完整系列时 timedelta 推断中的错误 (GH 7592)
使用 Series 和类似整数的列名进行 groupby
.nth时的错误 (GH 7559)Series.get中带有布尔访问器的错误 (GH 7407)value_counts中的一个错误,其中NaT不符合缺失 (NaN) 的条件 (GH 7423)线条图中的错误,如果
secondary_y=True则不会设置正确的xlim(GH 7459)分组的
hist和scatter图中的错误使用了旧的figsize默认值 (GH 7394)在使用
DataFrame.plot绘制子图时存在一个错误,即使子图数量为1,hist也会清除传递的ax(GH 7391)。在使用
DataFrame.boxplot绘制子图时,如果子图数量超过 1,带有bykw 的错误会引发ValueError(GH 7391)。子图中的错误显示
ticklabels和labels在不同的规则中 (GH 5897)Panel.apply中使用 MultiIndex 作为轴的错误 (GH 7469)DatetimeIndex.insert中的错误不保留name和tz(GH 7299)DatetimeIndex.asobject中的错误不会保留name(GH 7299)在具有类似日期时间范围(字符串和时间戳)的 MultiIndex 切片中的错误,(GH 7429)
Index.min和max中的错误无法正确处理nan和NaT(GH 7261)PeriodIndex.min/max中的错误导致int(GH 7609)在
resample中的一个错误,如果你传递了how,fill_method会被忽略 (GH 2073)TimeGrouper中的错误不会排除由key指定的列 (GH 7227)在
DataFrame和Series的条形图和水平条形图中,当指定bottom和left关键字时会引发TypeError(GH 7226)当
DataFrame.hist包含非数字列时会引发TypeError(GH 7277)Index.delete中的错误不会保留name和freq属性 (GH 7302)DataFrame.query()/eval中的一个错误,其中带有 @ 符号的本地字符串变量被当作尝试删除的临时变量处理 (GH 7300)。Float64Index中的一个错误,不允许重复 (GH 7149)。DataFrame.replace()中的一个错误,其中真实值被替换 (GH 7140)。StringMethods.extract()中的一个错误,其中单个匹配组 Series 会使用匹配器的名称而不是组名称 (GH 7313)。当
mode.use_inf_as_null == True时,isnull()中的错误,其中 isnull 在遇到inf/-inf时不会测试True(GH 7315)。在推断出的频率中存在一个错误,导致东半球时区结果为None (GH 7310)
Easter中的错误在偏移量为负时返回不正确的日期 (GH 7195)使用
.div进行广播时,整数数据类型和除零错误 (GH 7325)在
CustomBusinessDay.apply中的错误在传递np.datetime64对象时引发NameError(GH 7196)MultiIndex.append、concat和pivot_table中的错误不会保留时区 (GH 6606)在
.loc中使用单个多级索引级别的索引器列表(不是嵌套的)的错误 (GH 7349)当映射一个包含不同长度元组键的字典时,
Series.map中的错误 (GH 7333)所有
StringMethods现在在空 Series 上工作 (GH 7242)修复当查询不包含 ‘select’ 时
read_sql委托给read_sql_query的问题 (GH 7324)。在调用
np.isnan时,将字符串列名分配给带有Float64Index的DataFrame会引发TypeError的错误 (GH 7366)。NDFrame.replace()未能正确替换带有Period值的对象的错误 (GH 7379)。.ixgetitem 中的错误应始终返回一个 Series (GH 7150)使用不完整索引器进行 MultiIndex 切片时的错误 (GH 7399)
在切片级别中使用步长进行 MultiIndex 切片时的错误 (GH 7400)
在
DatetimeIndex中负索引器未正确切片的问题 (GH 7408)在
convert_objects中将布尔对象转换为nan的错误 (GH 7416)。quantile中的错误忽略了 axis 关键字参数 (GH 7306)nanops._maybe_null_out在处理复数时出现错误 (GH 7353)当
axis==0时,几个nanops函数在一维nan数组中存在错误 (GH 7354)nanops.nanmedian在axis==None时不工作的问题 (GH 7352)nanops._has_infs在处理多种数据类型时失效的错误 (GH 7357)在
StataReader.data中读取一个无观测值的 dta 文件失败的错误 (GH 7369)在读取包含固定宽度字符串的 Stata 13 (117) 文件时,
StataReader中的错误 (GH 7360)StataWriter中忽略编码的错误 (GH 7286)DatetimeIndex比较中的错误未正确处理NaT(GH 7529)在传递带有
tzinfo的输入到某些偏移apply、rollforward或rollback时,tzinfo被重置或引发ValueError的错误 (GH 7465)DatetimeIndex.to_period、PeriodIndex.asobject、PeriodIndex.to_timestamp中的错误不会保留name(GH 7485)DatetimeIndex.to_period和PeriodIndex.to_timestamp处理NaT不正确 (GH 7228)offsets.apply,rollforward和rollback中的错误可能会返回正常的datetime(GH 7502)当目标包含
NaT时,resample中的错误会引发ValueError(GH 7227)Timestamp.tz_localize中的错误会重置nanosecond信息 (GH 7534)当
DatetimeIndex.asobject包含NaT时引发ValueError的错误 (GH 7539)Timestamp.__new__中的错误未正确保留纳秒 (GH 7610)Index.astype(float)中的错误,它将返回一个object数据类型的Index(GH 7464)。DataFrame.reset_index中的错误丢失了tz(GH 3950)当
freq为None时,DatetimeIndex.freqstr中的错误引发AttributeError(GH 7606)由
TimeGrouper创建的GroupBy.size中的错误引发AttributeError(GH 7453)单列条形图中的错误未对齐 (GH 7498)。
带有 tz-aware 时间序列的区域图中的错误引发
ValueError(GH 7471)非单调
Index.union中的错误可能会不正确地保留name(GH 7458)DatetimeIndex.intersection中的错误不保留时区 (GH 4690)rolling_var中的一个错误,当窗口大于数组时会引发错误(GH 7297)最后一个绘制的时序图字典控制
xlim的错误 (GH 2960)secondary_y轴未被考虑用于时间序列xlim的错误 (GH 3490)在
Float64Index赋值中使用非标量索引器时的错误 (GH 7586)pandas.core.strings.str_contains中的错误在regex=False和case=False时不能正确地进行不区分大小写的匹配 (GH 7505)expanding_cov、expanding_corr、rolling_cov和rolling_corr中两个参数索引不匹配的错误 (GH 7512)to_sql中将布尔列作为文本列的错误 (GH 7678)分组的
hist中的错误未正确处理rotkw 和sharexkw (GH 7234)loc中的错误,在使用object类型索引进行回退整数索引时 (GH 7496)在传递
Series对象时,PeriodIndex构造函数中的错误(回归)(GH 7701)。
贡献者#
共有 46 人为此版本贡献了补丁。名字后面带有“+”的人首次贡献了补丁。
Andrew Rosenfeld
Andy Hayden
Benjamin Adams +
Benjamin M. Gross +
Brian Quistorff +
Brian Wignall +
DSM
Daniel Waeber
David Bew +
David Stephens
Jacob Schaer
Jan Schulz
John David Reaver
John W. O’Brien
Joris Van den Bossche
Julien Danjou +
K.-Michael Aye
Kevin Sheppard
Kyle Meyer
Matt Wittmann
Matthew Brett +
Michael Mueller +
Mortada Mehyar
Phillip Cloud
Rob Levy +
Schaer, Jacob C +
Stephan Hoyer
Thomas Kluyver
Todd Jennings
Tom Augspurger
TomAugspurger
bwignall
clham
dsm054 +
helger +
immerrr
jaimefrio
jreback
lexual
onesandzeroes
rockg
sanguineturtle +
seth-p +
sinhrks
unknown
yelite +