0.25.1 中的新特性 (August 21, 2019)#

这些是 pandas 0.25.1 中的变更。有关完整的变更日志,包括其他 pandas 版本,请参阅发布说明

IO 和 LZMA#

某些用户可能在不知情的情况下,安装的 Python 缺少标准库中的 lzma 模块。在这种情况下,import pandas 会因为 ImportError 而失败 (GH 27575)。现在,如果 lzma 模块不存在,pandas 将发出警告,而不是引发 ImportError。任何后续尝试使用 lzma 方法的操作都将引发 RuntimeError。解决缺少 lzma 模块的一个可能方法是确保您拥有必要的库,然后重新安装 Python。例如,在 MacOS 上使用 pyenv 安装 Python 可能会因为编译时未满足的系统依赖(如 xz)而导致 Python 安装不完整。编译会成功,但 Python 可能在运行时失败。此问题可以通过安装必要的依赖项,然后重新安装 Python 来解决。

错误修复#

Categorical(分类)#

  • Categorical.fillna() 中的一个错误,它会替换所有值,而不仅仅是 NaN 值 (GH 26215)

日期时间类型#

  • to_datetime() 中的一个错误,当传入时区不敏感的 DatetimeArrayDatetimeIndex 并设置 utc=True 时,会错误地返回一个时区不敏感的结果 (GH 27733)

  • Period.to_timestamp() 中的一个错误,当 Period 超出 Timestamp 实现范围(大致 1677-09-21 到 2262-04-11)时,会返回错误的 Timestamp 而不是引发 OutOfBoundsDatetime 错误 (GH 19643)

  • 在迭代 DatetimeIndex 时,当底层数据为只读时存在一个错误 (GH 28055)

时区#

  • Index 中的一个错误,当一个 numpy 对象数组包含时区敏感的 Timestampnp.nan 时,不会返回 DatetimeIndex (GH 27011)

数值#

  • 在使用时区敏感的 DatetimeIndex 时,Series.interpolate() 中存在一个错误 (GH 27548)

  • 打印负浮点复数时会引发 IndexError 的错误 (GH 27484)

  • DataFrame 的算术运算符(如 DataFrame.mul())与 Series (`axis=1`)一起使用时,如果 DataFrame 大于调用 numexpr 的最小阈值,会引发 AttributeError 的错误 (GH 27636)

  • DataFrame 算术运算中的一个错误,结果中的缺失值被错误地用 NaN 而不是 Inf 掩盖 (GH 27464)

转换#

  • 改进了对已弃用的方法 Series.real()Series.imag() 的警告 (GH 27610)

区间#

  • IntervalIndex 中的一个错误,其中 dir(obj) 会引发 ValueError (GH 27571)

索引#

  • 部分字符串索引中的一个错误,当使用诸如 .loc['2015'] 的标量进行索引时,会返回 NumPy 数组而不是 Series (GH 27516)

  • 打破涉及 Index 和其他索引类的引用循环,以允许在不运行垃圾回收器的情况下回收索引对象。(GH 27585, GH 27840)

  • 修复了在具有 MultiIndex 列的 DataFrame 单列赋值时的回归问题 (GH 27841)。

  • 修复了 .ix 在与 IntervalIndex 回退时的回归问题 (GH 27865)。

缺失值#

IO(输入/输出)#

  • 读取 parquet 文件时避免调用 S3File.s3,因为这在 s3fs 0.3.0 版本中已被移除 (GH 27756)

  • 当在 pandas.read_csv() 中传入负数 header 时,提供更好的错误消息 (GH 27779)

  • 在 Jupyter Notebook 的 HTML 表示中,正确遵循 min_rows 显示选项(在 v0.25.0 中引入)(GH 27991)。

绘图#

分组/重采样/滚动#

  • 修复了 pands.core.groupby.DataFrameGroupBy.quantile() 在给定多个分位数时引发错误的回归问题 (GH 27526)

  • DataFrameGroupBy.transform() 中的一个错误,其中应用时区转换 lambda 函数会丢失时区信息 (GH 27496)

  • GroupBy.nth() 中的一个错误,其中 observed=False 对于 Categorical 分组器被忽略 (GH 26385)

  • 在只读数组上进行窗口操作时存在一个错误 (GH 27766)

  • 修复了在传递无效分位数时 .DataFrameGroupBy.quantile 中发生的段错误 (GH 27470)

重塑#

  • 如果对具有扁平 IndexSeriesDataFrame 调用 .unstack() 并传入不正确的名称,现在会引发 KeyError (GH 18303)

  • 当传入 tolerance 关键字参数时,merge_asof() 无法合并 Timedelta 对象的错误 (GH 27642)

  • DataFrame.crosstab() 中的一个错误,当 margins 设置为 Truenormalize 不为 False 时,会引发错误。(GH 27500)

  • 当指定 sort 参数时,DataFrame.join() 现在会抑制 FutureWarning 警告 (GH 21952)

  • DataFrame.join() 在只读数组上引发错误的错误 (GH 27943)

稀疏数据#

  • 对于具有稀疏 dtype 的 Series,在进行规约操作时存在一个错误 (GH 27080)

其他#

  • 当使用类似字典的替换器替换时区敏感的时间戳时,Series.replace()DataFrame.replace() 中的一个错误 (GH 27720)

  • 当使用自定义类型索引器时,Series.rename() 中的一个错误。现在,任何不可调用或不像字典的值都将被视为标量。(GH 27814)

贡献者#

共有 5 人为本次发布贡献了补丁。名字旁边带有“+”的人是首次贡献补丁。

  • Jeff Reback

  • Joris Van den Bossche

  • MeeseeksMachine +

  • Tom Augspurger

  • jbrockmendel