Dropna设置为True的 pandas Groupby生成错误输出
问题描述
在以下代码片断中:
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"a": [1, 2, 3, 4, 5, 6, 7, 8, 9],
"b": [1, np.nan, 1, np.nan, 2, 1, 2, np.nan, 1]
}
)
df_again = df.groupby("b", dropna=False).apply(lambda x: x)
我预期df
和df_again
相同。但它们不是:
df
a b
0 1 1.0
1 2 NaN
2 3 1.0
3 4 NaN
4 5 2.0
5 6 1.0
6 7 2.0
7 8 NaN
8 9 1.0
df_again
a b
0 1 1.0
2 3 1.0
4 5 2.0
5 6 1.0
6 7 2.0
8 9 1.0
现在,如果我将lambda表达式略微调整为";,请参阅";What With With by
df.groupby("b", dropna=False).apply(lambda x: print(x))
我实际上可以想象df
中b
是NaN
的那部分也已处理。
我这里错过了什么? (使用 pandas 1.3.1和Numpy 1.20.3)
解决方案
这是 pandas 1.2.0中引入的错误,如here所述,已解决here。
相关文章