我有一个像这样的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
答案 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))
这对我来说很好,并给出了我正在寻找的确切答案。