1.5.1 中的新功能 (2022 年 10 月 19 日)#

以下是 pandas 1.5.1 中的更改。请参阅 发布说明 以获取包括其他 pandas 版本在内的完整更新日志。

使用分类分组器进行 groupby 的行为 (GH 48645)#

在 pandas 1.5 之前的版本中,当分组器为分类数据类型时,即使使用 dropna=Falsegroupby 仍会删除 NA 值。1.5 版本尝试修复此问题,但它引入了一个回归,即当向 groupby 传递 observed=Falsedropna=False 时,只会得到观察到的类别。结果发现,修复 dropna=False 错误的补丁与 observed=False 不兼容,因此决定最佳解决方案是恢复正确的 observed=False 行为,代价是重新引入 dropna=False 错误。

In [1]: df = pd.DataFrame(
   ...:     {
   ...:         "x": pd.Categorical([1, None], categories=[1, 2, 3]),
   ...:         "y": [3, 4],
   ...:     }
   ...: )
   ...: 

In [2]: df
Out[2]: 
     x  y
0    1  3
1  NaN  4

1.5.0 行为:

In [3]: # Correct behavior, NA values are not dropped
        df.groupby("x", observed=True, dropna=False).sum()
Out[3]:
     y
x
1    3
NaN  4


In [4]: # Incorrect behavior, only observed categories present
        df.groupby("x", observed=False, dropna=False).sum()
Out[4]:
     y
x
1    3
NaN  4

1.5.1 行为:

# Incorrect behavior, NA values are dropped
In [3]: df.groupby("x", observed=True, dropna=False).sum()
Out[3]: 
     y
x     
1    3
NaN  4

# Correct behavior, unobserved categories present (NA values still dropped)
In [4]: df.groupby("x", observed=False, dropna=False).sum()
Out[4]: 
     y
x     
1    3
2    0
3    0
NaN  4

修复的回归#

错误修复#

其他#

  • 避免在自省函数时显示已弃用的签名,这些函数带有关于参数变为仅关键字参数的警告 (GH 48692)

贡献者#

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

  • Amay Patel +

  • Deepak Sirohiwal +

  • Dennis Chukwunta

  • Gaurav Sheni

  • Himanshu Wagh +

  • Lorenzo Vainigli +

  • Marc Garcia

  • Marco Edward Gorelli

  • Matthew Roeschke

  • MeeseeksMachine

  • Noa Tamir

  • Pandas Development Team

  • Patrick Hoefler

  • Richard Shadrach

  • Shantanu

  • Torsten Wörtwein