我有一个像这样的数据框:
ID Category
1 A
1 B
1 A
1 B
2 A
2 C
2 C
2 A
2 D
3 E
如何对ID
列进行分组,并对每个类别进行计数?
IE。
ID A B C D E
1 2 2 0 0 0
2 2 0 2 1 0
3 0 0 0 0 1
我尝试过df.groupby('ID').count()
和df.groupby('ID')['Category']
答案 0 :(得分:2)
这可以通过groupby
来完成:
df.groupby('ID')['Category'].value_counts().unstack(fill_value=0)
或crosstab
(代码较短,但速度较慢)
pd.crosstab(df.ID, df.Category)
输出:
Category A B C D E
ID
1 2 2 0 0 0
2 2 0 2 1 0
3 0 0 0 0 1