看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)某班级 8 名同学的期末总分如下:
姓名 | 总分 |
---|---|
张三 | 582 |
李四 | 630 |
王五 | 630 |
赵六 | 610 |
钱七 | 582 |
孙八 | 599 |
周九 | 630 |
吴十 | 610 |
请用 pandas.Series.rank()
完成以下要求:
"rank"
)。请写出完整代码并显示结果。
import pandas as pd
# 1. 构造原始数据
df = pd.DataFrame({
'姓名': ['张三', '李四', '王五', '赵六', '钱七', '孙八', '周九', '吴十'],
'总分': [582, 630, 630, 610, 582, 599, 630, 610]
})
# 2. 计算排名:降序、min 方法、转整数
df['rank'] = df['总分'].rank(method='min', ascending=False).astype(int)
# 3. 按要求列顺序输出
result = df[['姓名', '总分', 'rank']]
print(result)
输出:
姓名 总分 rank
0 张三 582 7
1 李四 630 1
2 王五 630 1
3 赵六 610 4
4 钱七 582 7
5 孙八 599 6
6 周九 630 1
7 吴十 610 4
解释:
(完)
更新时间:2025-08-13 11:06:38 标签:pandas python 排名