我在使用上个月发布的Pandas 0.25.0时遇到了一些困难。
考虑此日期范围:
df = pd.DataFrame({
'A': pd.Series(['a', 'b', 'b', 'a'], dtype='category'),
'B': pd.Series(['m', 'o', 'o', 'o']),
'C': pd.Series([1, 2, 3, 4]),
})
假设我们要在前两列进行分组。结果数据框应包含3行,因为组合b
m
不存在。
df.groupby(['A', 'B']).agg({'C': 'sum'})
在Pandas 0.24.1和更早版本中,这可以正常工作:
C
A B
a m 1
o 4
b o 5
但是,在Pandas 0.25.0中,它已损坏:
C
A B
a m 1.0
o 4.0
b m NaN
o 5.0
我知道我可以通过将observed=True
添加到groupby调用中来抑制这种有害行为,但这在旧版本中不是必需的。我在release notes中找不到任何相关内容。
为什么?这是熊猫中的虫子吗?我错过了什么吗?