用于python中计数值的数据透视表

时间:2017-10-25 11:26:34

标签: python pandas dataframe pivot-table

我有一个像这样的pandas数据框:

ColA    ColB
abc      1
abc      0
efj      1
efj      1
hij      1
hej      1

我想创建一个数据透视表,以便它可以显示如下:

Count of ColA   Column Labels   
Row Labels                 0    1
abc                        1    1
efj                             2
hej                             1
hij                             1
Grand Total                1    5

在电子表格数据透视表中进行相同操作时,“ColA”列将转到“ROWS”,“ColB”将转到“Columns”和“values”。 “价值观”将有 “ColB伯爵”。

为了在熊猫中做同样的事情,我做了以下几点:

pd.pivot_table(train_filtered, index=["ColA"], values = ["ColB"], aggfunc = [np.count])

但是,pandas中没有任何聚合函数计数。反正有类似的事情可以实现吗?

修改

如图所示重写输出有很多歧义:

    ColB    
ColA    0   1
abc     1   1
efj         2
hij         1
hej         1

1 个答案:

答案 0 :(得分:0)

从某个方面找到了这个链接的答案 - Pandas pivot table for multiple columns at once

(df.set_index('ColA')
 .groupby(level='ColA')
 .apply(lambda g: g.apply(pd.value_counts))
 .unstack(level=1)
 .fillna(0))

这对我来说很好,并给出了我正在寻找的确切答案。