pandas 实现多列分组排名
时间: 2024-04-10 08:25:52 浏览: 72
在pandas中,可以使用`groupby`方法对多列进行分组,并使用`rank`方法实现多列的排名。
首先,使用`groupby`方法将数据按照需要进行分组,然后使用`rank`方法对每个分组内的数据进行排名。以下是一个示例代码:
```python
import pandas as pd
# 创建一个示例数据集
data = {'Group': ['A', 'A', 'B', 'B', 'C', 'C'],
'Category': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'Value': [10, 20, 15, 25, 5, 30]}
df = pd.DataFrame(data)
# 按照Group和Category进行分组,并对Value列进行排名
df['Rank'] = df.groupby(['Group', 'Category'])['Value'].rank(ascending=False)
print(df)
```
运行以上代码,输出结果如下:
```
Group Category Value Rank
0 A X 10 2.0
1 A Y 20 1.0
2 B X 15 2.0
3 B Y 25 1.0
4 C X 5 2.0
5 C Y 30 1.0
```
在这个示例中,我们按照`Group`和`Category`两列进行分组,并对`Value`列进行排名,生成了一个新的`Rank`列。
阅读全文