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 中报告为已修复的与条形图刻度标签不一致相关的错误再次出现(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 中,我们重构了如何在 DataFrame 上调用 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

错误修复#

  • 在使用 float_precision="high" 时,read_csv() 中的错误导致段错误或长指数字符串解析错误。这导致在某些情况下出现了回归,因为在 pandas 1.2.0 中 float_precision 的默认值发生了变化 (GH 38753)

  • 在初始化时发生 csv.ErrorUnicodeDecodeError 时,read_csv() 中的错误未关闭已打开的文件句柄 (GH 39024)

  • Index 具有混合数据类型时,pandas.testing.assert_index_equal()check_order=False 时引发 TypeError 的错误 (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