1.2.1 版本新特性 (2021 年 1 月 20 日)#

以下是 pandas 1.2.1 中的变更。请参阅发行说明,获取包含其他 pandas 版本的完整变更日志。

修复的回归问题#

我们已回滚了导致 pandas 1.2.0 中出现多个绘图相关回归的提交 (GH 38969, GH 38736, GH 38865, GH 38947GH 39126)。因此,之前在 pandas 1.2.0 中报告已修复的关于柱状图刻度标签不一致的 bug 又重新出现 (GH 26186GH 11465)

在非对齐的 DataFrames 上调用 NumPy ufuncs#

在 pandas 1.2.0 之前,在非对齐的 DataFrames(或 DataFrame / Series 组合)上调用 NumPy ufunc 会忽略索引,仅按形状匹配输入,并使用第一个 DataFrame 的索引/列作为结果的索引/列

In [1]: df1 = pd.DataFrame({"a": [1, 2], "b": [3, 4]}, index=[0, 1])
In [2]: df2 = pd.DataFrame({"a": [1, 2], "b": [3, 4]}, index=[1, 2])
In [3]: df1
Out[3]:
   a  b
0  1  3
1  2  4
In [4]: df2
Out[4]:
   a  b
1  1  3
2  2  4

In [5]: np.add(df1, df2)
Out[5]:
   a  b
0  2  6
1  4  8

这与 pandas 的其他操作方式不同,其他操作会首先对齐输入

In [6]: df1 + df2
Out[6]:
     a    b
0  NaN  NaN
1  3.0  7.0
2  NaN  NaN

在 pandas 1.2.0 中,我们重构了在 DataFrames 上调用 NumPy ufuncs 的方式,这开始首先对齐输入 (GH 39184),这与其他 pandas 操作以及在 Series 对象上调用 ufuncs 的方式一致。

对于 pandas 1.2.1,我们恢复了之前的行为以避免破坏性变更,但上述示例 np.add(df1, df2) 使用非对齐输入时现在将引发警告,并且未来的 pandas 2.0 版本将开始首先对齐输入 (GH 39184)。在 Series 对象上调用 NumPy ufunc(例如 np.add(s1, s2))已经进行了对齐,并将继续如此。

要避免警告并保持当前忽略索引的行为,可以将其中一个参数转换为 NumPy 数组

In [7]: np.add(df1, np.asarray(df2))
Out[7]:
   a  b
0  2  6
1  4  8

要获得未来的行为并消除警告,可以在将参数传递给 ufunc 之前手动进行对齐

In [8]: df1, df2 = df1.align(df2)
In [9]: np.add(df1, df2)
Out[9]:
     a    b
0  NaN  NaN
1  3.0  7.0
2  NaN  NaN

错误修复#

  • 修复了 read_csv()float_precision="high" 时导致的段错误或长指数字符串解析错误。这在某些情况下引起了回归,因为 float_precision 的默认值在 pandas 1.2.0 中被更改 (GH 38753)

  • 修复了 read_csv() 在初始化时发生 csv.ErrorUnicodeDecodeError 时未关闭已打开文件句柄的 bug (GH 39024)

  • 修复了 pandas.testing.assert_index_equal()check_order=FalseIndex 具有混合 dtype 时引发 TypeError 的 bug (GH 39168)

其他#

贡献者#

共有 20 人为此版本贡献了补丁。名字旁带有“+”号的贡献者是首次贡献补丁。

  • Ada Draginda +

  • Andrew Wieteska

  • Bryan Cutler

  • Fangchen Li

  • Joris Van den Bossche

  • Matthew Roeschke

  • Matthew Zeitlin +

  • MeeseeksMachine

  • Micael Jarniac

  • Omar Afifi +

  • Pandas Development Team

  • Richard Shadrach

  • Simon Hawkins

  • Terji Petersen

  • Torsten Wörtwein

  • WANG Aiyong

  • jbrockmendel

  • kylekeppler

  • mzeitlin11

  • patrick