代码示例:
import pandas as pd
df = pd.DataFrame({'id': [1,2,3,4,5,6,7,8,9,10],
'variable1': [1,2,3,4,5,1,2,3,4,5],
'variable2': [10,9,8,7,6,5,4,3,2,1]})
df['rank'] = df.groupby(['variable1'])['variable2'].rank(method='dense', ascending=False)
print(df)
输出:
id variable1 variable2 rank
0 1 1 10 1.0
1 2 2 9 1.0
2 3 3 8 1.0
3 4 4 7 1.0
4 5 5 6 1.0
5 6 1 5 2.0
6 7 2 4 2.0
7 8 3 3 2.0
8 9 4 2 2.0
9 10 5 1 2.0
解释:
在这个示例中,我们按照变量“variable1”对数据进行了分组,并在每个组内按照变量“variable2”进行了排序。然后,我们使用“rank”函数(具体方法为“’dense’”)来为每个组内的排名赋值。最后,我们在原始数据框中添加了一列名为“rank”的新列。