pandas groupby并在以每组1开头的组中排名 [英] pandas groupby and rank within groups that start with 1 for each group
本文介绍了 pandas groupby并在以每组1开头的组中排名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据框:
将熊猫作为pd导入
df = pd.DataFrame([[1, 'a'],
[1, 'a'],
[1, 'b'],
[1, 'a'],
[2, 'a'],
[2, 'b'],
[2, 'a'],
[2, 'b'],
[3, 'b'],
[3, 'a'],
[3, 'b'],
], columns=['session', 'issue'])
df
我想在会议中对问题进行排名. 我尝试过:
I would like to rank issues within sessions. I tried with:
df.groupby(['session', 'issue']).size().rank(ascending=False, method='dense')
session issue
1 a 1.0
b 3.0
2 a 2.0
b 2.0
3 a 3.0
b 2.0
dtype: float64
我需要的是这样的结果:
What I need is result like this one:
- 对于小组会议= 1,有3个问题和1个b问题,因此 对于第1组,排名为a = 1和b = 2
- 对于分组会话= 2,两个等级均相等,因此它们的等级应相同= 1
- 对于小组会议= 3,有b个问题,一个a问题,因此等级应为b = 1和a = 2
- for group session=1, there are three a issues and one b issue, so for group 1, ranks are a = 1 and b = 2
- for group session=2, both ranks are equal so their rank should be the same = 1
- for group session=3, there are to b issues and one a issue, so ranks should be b=1 and a=2
无论如何,为什么每个组的排名都不是从1、2、3 ...开始?
Anyway, why for each group ranks don't start from 1, 2, 3...?
推荐答案
使用 查看全文