我可以使用pandas pivot_table 聚合包含缺失值的列并将这些缺失值作为单独的类别包含在内吗?
In:
df = pd.DataFrame({'a': pd.Series(['X', 'X', 'Y', 'Y', 'N', 'N'], dtype='category'),
'b': pd.Series([None, None, 'd', 'd', 'd', 'd'], dtype='category')})
Out:
a b
0 X NaN
1 X NaN
2 Y d
3 Y d
4 N d
5 N d
In:
df.groupby('a')['b'].apply(lambda x: x.value_counts(dropna=False)).unstack(1)
Out:
NaN d
a
N NaN 2.0
X 2.0 0.0
Y NaN 2.0
我可以使用 pandas pivot_table 获得相同的结果吗?如果是比如何?谢谢。
最佳答案
不知为何,dtype="category"
不适用于 pivot_table()
计数时NaN
值。将它们转换为常规字符串可启用常规 pivot_table(aggfunc="size")
.
df.astype(str).pivot_table(index="a", columns="b", aggfunc="size")
结果b d nan
a
N 2.0 NaN
X NaN 2.0
Y 2.0 NaN
可以选择做 .fillna(0)
替换 nan
s 与 0
秒
关于python - 我可以使用 Pandas 的 pivot_table 聚合缺失值的列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64976121/