【问题标题】:pivot table for count values in pythonpython中计数值的数据透视表
【发布时间】:2018-04-06 11:18:12
【问题描述】:

我有一个这样的熊猫数据框:

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”将转到“列”和“值”。 “价值观”将有 “ColB 计数”。

为了在 pandas 中做同样的事情,我做了以下事情:

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

但是,pandas 中没有什么叫做 count 的聚合函数。反正有没有类似的事情可以实现?

编辑

将输出重写为所示的有很多歧义:

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

【问题讨论】:

  • 介意解释一下你的输出吗?这没有太大意义。
  • @cᴏʟᴅsᴘᴇᴇᴅ - 当然,谢谢你的提问。它是ColA的聚合。对于 ColA 中的每个唯一值,我们需要对 ColB 中的值求和。
  • 看我的回答。我不确定这是否是你要找的。​​span>

标签: python pandas dataframe pivot-table


【解决方案1】:

不知何故从这个链接找到了答案 - 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))

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

【讨论】:

    猜你喜欢
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 2022-10-17
    相关资源
    最近更新 更多