0.23.2 版本的新内容(2018年7月5日)#

这是 0.23.x 系列中的一个小错误修复版本,包括一些小的回归修复和错误修复。我们建议所有用户升级到此版本。

备注

pandas 0.23.2 是第一个与 Python 3.7 兼容的 pandas 版本 (GH 20552)

警告

自2019年1月1日起,pandas 功能版本将仅支持 Python 3。更多信息请参见 Dropping Python 2.7

对整个 DataFrame 的逻辑简化#

DataFrame.all()DataFrame.any() 现在接受 axis=None 以减少所有轴到一个标量 (GH 19976)

In [1]: df = pd.DataFrame({"A": [1, 2], "B": [True, False]})

In [2]: df.all(axis=None)
Out[2]: False

这也提供了与 NumPy 1.15 的兼容性,现在它分派到 DataFrame.all。使用 NumPy 1.15 和 pandas 0.23.1 或更早版本,numpy.all() 将不再减少每个轴:

>>> # NumPy 1.15, pandas 0.23.1
>>> np.any(pd.DataFrame({"A": [False], "B": [False]}))
A    False
B    False
dtype: bool

在 pandas 0.23.2 中,这将正确返回 False,就像在 NumPy < 1.15 中一样。

In [3]: np.any(pd.DataFrame({"A": [False], "B": [False]}))
Out[3]: False

修复的回归问题#

  • 修复了在处理类似文件对象时 to_csv() 的回归问题 (GH 21471)

  • 重新允许 MultiIndex 的重复级别名称。通过名称访问具有重复名称的级别仍然会引发错误 (GH 19029)。

  • DataFrame.first_valid_index()Series.first_valid_index() 中存在一个错误,当行索引有重复值时会引发该错误 (GH 21441)

  • 修复了具有长名称的分层列的 DataFrame 的固定打印 (GH 21180)

  • 修复了在包含分类日期时间值的 MultiIndex 或多键的 reindex()groupby() 中的回归问题 (GH 21390)。

  • 修复了对象dtype的一元负操作中的回归问题 (GH 21380)

  • 当时间戳是舍入频率的倍数时,Timestamp.ceil()Timestamp.floor() 中的错误 (GH 21262)

  • 修复了 to_clipboard() 中的回归问题,默认情况下以空格分隔而不是制表符分隔复制数据框 (GH 21104)

构建变化#

  • 源代码和二进制分发版不再包含测试数据文件,从而减小了下载大小。依赖这些数据文件的测试在使用 pandas.test() 时将被跳过。(GH 19320)

错误修复#

转换

索引

I/O

  • read_csv() 中的一个错误,当 nrows=0low_memory=True ,并且 index_col 不是 None 时,会导致错误的不正确抛出 (GH 21141)

  • 在格式化带有整数列的 record_prefix 时,json_normalize() 中的错误 (GH 21536)

分类

  • 在Python 2.7的罕见条件下渲染带有 Categorical dtype 的 Series 时出现的Bug (GH 21002)

时区

  • TimestampDatetimeIndex 中的一个错误,当传递一个在 DST 转换后本地化的 Timestamp 时,会返回一个在 DST 转换前的日期时间 (GH 20854)

  • 在比较带有 tz-aware DatetimeIndex 列的 DataFrame 时出现的 Bug,该列涉及 DST 转换,引发了 KeyError (GH 19970)

  • DatetimeIndex.shift() 中的错误,当跨越夏令时(DST)时会引发 AssertionError (GH 8616)

  • Timestamp 构造函数中的一个错误,其中传递无效的时区偏移指示符(Z)不会引发 ValueError (GH 8910)

  • Timestamp.replace() 中替换到夏令时边界时会保留不正确的偏移的错误 (GH 7825)

  • 在重新索引一个时区无和有时区的 DatetimeIndex 时,DatetimeIndex.reindex() 中的错误 (GH 8306)

  • 在跨越夏令时边界进行降采样时 DatetimeIndex.resample() 中的错误 (GH 8531)

Timedelta

  • Timedelta 中的一个错误,其中小于1微秒的非零时间增量被认为是False (GH 21484)

贡献者#

总共有17人为此版本贡献了补丁。名字后面带有“+”的人首次贡献了补丁。

  • David Krych

  • Jacopo Rota +

  • Jeff Reback

  • Jeremy Schendel

  • Joris Van den Bossche

  • Kalyan Gokhale

  • Matthew Roeschke

  • Michael Odintsov +

  • Ming Li

  • Pietro Battiston

  • Tom Augspurger

  • Uddeshya Singh

  • Vu Le +

  • alimcmaster1 +

  • david-liu-brattle-1 +

  • gfyoung

  • jbrockmendel