版本 0.14.1 (2014年7月11日)#
这是 0.14.0 的一个次要版本,包含少量 API 更改、一些新功能、增强和性能改进,以及大量的错误修复。我们建议所有用户升级到此版本。
亮点包括
新增方法
select_dtypes()用于根据 dtype 选择列,以及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 时区,现在可以像 pytz 时区一样在 pandas 中使用。 (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)。支持对在项目轴(分别为
index、columns和items)上具有非唯一标签的Series、DataFrame和Panel对象进行 pickle 化 (GH 7370)。改进了混合空对象的日期时间/时间差推断。解释包含所有空元素的对象索引时,从 0.13.1 版本回归 (GH 7431)。
性能#
实验性功能#
错误修复#
DataFrame.where在对称形状的 frame 和传入的 DataFrame 类型 'other' 参数时存在错误 (GH 7506)。Panel 索引与 MultiIndex 轴的错误 (GH 7516)。
具有重复索引和非精确端点的日期时间切片索引出现回归 (GH 7523)。
列表的列表和单一类型与混合类型在设置项时存在的错误 (GH 7551:)
非对齐 Series 的时间操作错误 (GH 7500)。
分配不完整 Series 时的 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绘制子图时,hist即使子图数量为一个也会清除传入ax的错误 (GH 7391)。使用
DataFrame.boxplot绘制子图时,如果子图数量超过 1,by关键字会引发ValueError的错误 (GH 7391)。子图中
ticklabels和labels显示规则不同的错误 (GH 5897)。Panel.apply在 MultiIndex 作为轴时的错误 (GH 7469)。DatetimeIndex.insert未保留name和tz的错误 (GH 7299)。DatetimeIndex.asobject未保留name的错误 (GH 7299)。MultiIndex 切片与日期时间范围(字符串和 Timestamps)的错误 (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()中,truthy 值被替换的错误 (GH 7140)。StringMethods.extract()中,单个匹配组 Series 使用匹配器名称而不是组名称的错误 (GH 7313)。isnull()在mode.use_inf_as_null == True时,遇到inf/-inf未返回True的错误 (GH 7315)。东半球时区的 inferred_freq 结果为 None 的错误 (GH 7310)。
Easter在偏移量为负时返回错误日期的错误 (GH 7195)。.div、整数 dtypes 和除以零的广播错误 (GH 7325)。CustomBusinessDay.apply传入np.datetime64对象时引发NameError的错误 (GH 7196)。MultiIndex.append、concat和pivot_table未保留时区的错误 (GH 6606)。.loc使用单层 MultiIndex(未嵌套)上的索引器列表的错误 (GH 7349)。Series.map映射具有不同长度元组键的字典时的错误 (GH 7333)。所有
StringMethods现在都可以在空 Series 上工作的错误 (GH 7242)。修复
read_sql在查询不包含 'select' 时委托给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)。在 1 维
nan数组中axis==0时,一些nanops函数的错误 (GH 7354)。nanops.nanmedian在axis==None时不工作的错误 (GH 7352)。nanops._has_infs不适用于许多 dtypes 的错误 (GH 7357)。StataReader.data读取 0 观察值 dta 失败的错误 (GH 7369)。StataReader在读取包含固定宽度字符串的 Stata 13 (117) 文件时的错误 (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)。resample在目标包含NaT时引发ValueError的错误 (GH 7227)。Timestamp.tz_localize重置nanosecond信息的错误 (GH 7534)。DatetimeIndex.asobject包含NaT时引发ValueError的错误 (GH 7539)。Timestamp.__new__未正确保留纳秒的错误 (GH 7610)。Index.astype(float)返回objectdtypeIndex的错误 (GH 7464)。DataFrame.reset_index丢失tz的错误 (GH 3950)。DatetimeIndex.freqstr在freq为None时引发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在objectdtype 索引上执行回退整数索引的错误 (GH 7496)。PeriodIndex构造函数在传入Series对象时存在的错误(回归)(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 +