带有聚合的列上的pandas groupby

时间:2019-02-12 20:49:11

标签: python pandas pandas-groupby

我有一个这样的数据框:

userId   category  count
A        cat       24
B        dog       26
A        cat       32
C        bird      21
D        lion      6
D        cat       32
C        bird      22

我希望结果是这样。

userId   cat   dog  bird lion 
A        56    0    0    0
B        0     26   0    0
C        0     0    43   0
D        32    0    0    6

应该groupBy userId和category应该成为列。现在,类别值应显示每个类别的总数。

如何使用Pandas做到这一点?

我尝试执行以下操作以按userId分组

groupData = df.groupby(['userId', 'category', 'count']).size()

但是我该如何轮换并加总所有类别计数?

1 个答案:

答案 0 :(得分:0)

使用数据透视表:

df.pivot_table(index='userId', columns='category', values='count', aggfunc='sum' fill_value=0)
#category  bird  cat  dog  lion
#userId                        
#A          0    56    0     0
#B          0    0   26     0
#C          43   0    0     0
#D          0    32    0     6