pandas组内排序并且新建序号列代码
时间: 2023-04-06 09:03:56 浏览: 122
可以使用pandas的groupby和apply方法来实现组内排序并新建序号列的功能,示例代码如下:
```python
import pandas as pd
# 创建示例数据
df = pd.DataFrame({
'group': ['A', 'A', 'B', 'B', 'B', 'C'],
'value': [3, 1, 4, 2, 5, 6]
})
# 定义排序函数
def sort_and_rank(group):
sorted_group = group.sort_values(ascending=False)
ranked_group = pd.Series(range(1, len(group)+1), index=sorted_group.index)
return ranked_group
# 对每个组应用排序函数并新建序号列
df['rank'] = df.groupby('group')['value'].apply(sort_and_rank)
# 输出结果
print(df)
```
输出结果如下:
```
group value rank
0 A 3 1
1 A 1 2
2 B 4 2
3 B 2 3
4 B 5 1
5 C 6 1
```
其中,rank列即为新建的序号列,表示每个组内按照value值从大到小排名的结果。
阅读全文