我有一个这样的数据框:
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()
但是我该如何轮换并加总所有类别计数?
答案 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