我有一个数据框:
Group Score
1 3
1 2
2 3
2 1
3 0
3 1
4 1
4 1
我想取每组的平均分,并根据平均分降序排列所有组。
我最初的想法是在group列上做groupby,求score列的平均值,但是我不确定接下来的步骤是什么
答案 0 :(得分:1)
尝试使用 groupby transform
获得平均值,然后使用 rank
:
df['Rank'] = (
df.groupby('Group')['Score']
.transform('mean')
.rank(method='dense', ascending=False)
.astype(int)
)
df
:
Group Score Rank
0 1 3 1
1 1 2 1
2 2 3 2
3 2 1 2
4 3 0 4
5 3 1 4
6 4 1 3
7 4 1 3