0.25.1 版本 (2019 年 8 月 21 日) 的新特性#

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

IO 和 LZMA#

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

Bug 修复#

Categorical#

  • Categorical.fillna() 中的 Bug,该 Bug 会替换所有值,而不仅仅是那些是 NaN 的值 (GH 26215)

日期时间类型#

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

  • Period.to_timestamp() 中的 Bug,当 Period 超出 Timestamp 实现的边界(大约 1677-09-21 到 2262-04-11)时,会返回一个错误的 Timestamp 而不是抛出 OutOfBoundsDatetime 异常 (GH 19643)

  • 在底层数据为只读时迭代 DatetimeIndex 中的 Bug (GH 28055)

时区#

  • Index 中的 Bug,当一个包含有时区信息的 Timestampnp.nan 的 numpy object 数组不会返回一个 DatetimeIndex (GH 27011)

数值#

  • 使用带时区信息的 DatetimeIndexSeries.interpolate() 中的 Bug (GH 27548)

  • 打印负浮点复数时会抛出 IndexError 的 Bug (GH 27484)

  • DataFrame 算术运算中的 Bug,例如 DataFrame.mul()axis=1Series 进行操作时,在大小超过调用 numexpr 的最小阈值的 DataFrame 上会抛出 AttributeError (GH 27636)

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

转换#

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

区间#

  • IntervalIndex 中的 Bug,当 dir(obj) 会抛出 ValueError 异常 (GH 27571)

索引#

  • 在部分字符串索引中,使用像 .loc['2015'] 这样的标量进行索引时,返回 NumPy 数组而不是 Series 的 Bug (GH 27516)

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

  • 修复了向带有 MultiIndex 列的 DataFrame 的单个列赋值时的回归 Bug (GH 27841)。

  • 修复了 .ix 回退到 IntervalIndex 时的回归 Bug (GH 27865)。

缺失值#

IO#

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

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

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

绘图#

GroupBy/resample/rolling#

  • 修复了在给定多个分位数时 pands.core.groupby.DataFrameGroupBy.quantile() 抛出异常的回归 Bug (GH 27526)

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

  • GroupBy.nth() 中的 Bug,对于 Categorical 分组器,observed=False 被忽略了 (GH 26385)

  • 对只读数组进行窗口操作时的 Bug (GH 27766)

  • 修复了当传入无效分位数时 .DataFrameGroupBy.quantile 中的段错误 (segfault) (GH 27470)

重塑#

  • 现在,如果在具有平坦 IndexSeriesDataFrame 上调用 .unstack() 时传入的名称不正确,则会抛出 KeyError 异常 (GH 18303)

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

  • DataFrame.crosstab() 中的 Bug,当 margins 设置为 Truenormalize 不为 False 时,会抛出错误 (GH 27500)。

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

  • DataFrame.join() 在处理只读数组时抛出异常的 Bug (GH 27943)

稀疏#

  • 具有 Sparse 数据类型的 Series 的 reductions 操作中的 Bug (GH 27080)

其他#

  • 使用类似字典的替换器替换带时区信息的 timestamp 时,Series.replace()DataFrame.replace() 中的 Bug (GH 27720)

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

贡献者#

本次发布共有 5 位贡献者提交了补丁。名字旁有“+”号的人是首次贡献补丁。

  • Jeff Reback

  • Joris Van den Bossche

  • MeeseeksMachine +

  • Tom Augspurger

  • jbrockmendel