use*_*309 5 python size group-by rank pandas
我有一个数据框:
将 pandas 导入为 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
Run Code Online (Sandbox Code Playgroud)
我想对会议中的问题进行排名。我尝试过:
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
Run Code Online (Sandbox Code Playgroud)
我需要的是这样的结果:
无论如何,为什么每个组的排名不从 1、2、3... 开始?
( )DataFrameGroupBy.rank的第一级使用:MultiIndexsession
s = (df.groupby(['session', 'issue'])
.size()
.groupby(level=0)
.rank(ascending=False, method='dense'))
print (s)
session issue
1 a 1.0
b 2.0
2 a 1.0
b 1.0
3 a 2.0
b 1.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3906 次 |
| 最近记录: |