python - 我可以使用 Pandas 的 pivot_table 聚合缺失值的列吗?

标签 python pandas dataframe pivot-table nan

我可以使用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/

相关文章:

python - Pandas - 在 pd.merge 时为缺失值添加 NaN

r - 使用不存在的列名对数据框进行子集

dataframe - 在 Spark 中重新分区更改 Dataframe 的行顺序

python - 获取 HDF5 内容列表(Pandas HDFStore)

Python错误: execute() first

python - 如何从批处理文件中调用特定的 Python 函数?

python - 如何对 Django 模型字段名进行脱水?

python - 为什么使用 Series 设置 MultiIndex 数据框会给出一列 NaN?

python-3.x - Pandas Groupby 结果中的列

python - 如何删除 dask 数据框中带有 nan 单元格的行?