我在Pandas中有一个数据框,我想按“名称”分组,然后计算每个评分的数量。
Ckey name rating
1 Tom B
2 Tom A
3 Ken C
4 Lily A
5 Lily A
6 Lily B
预期产量
name rating values_count
Tom A 1
B 1
Ken C 1
Lily A 2
B 1
我的方法无效,请告知
df.groupby('name')['rating'].values_count()
答案 0 :(得分:1)
使用:
df.groupby(['name','rating']).size()
name rating
Ken C 1
Lily A 2
B 1
Tom A 1
B 1
dtype: int64
或要将其作为数据框取回,请使用:
df.groupby(['name','rating']).count()
Ckey
name rating
Ken C 1
Lily A 2
B 1
Tom A 1
B 1
或者,您的方法可行,但是使用value_counts()
而不是values_count()
(我猜只是错字):
df.groupby('name')['rating'].value_counts()
name rating
Ken C 1
Lily A 2
B 1
Tom A 1
B 1
Name: rating, dtype: int64