以上是各班级学生成绩表,要求实现:“为每个班级的学生进行排名次”
使用pandas来解决,先分组(groupby)然后按分数排序(sort_values)得到名次。代码如下:
import pandas as pd
df=pd.read_csv('t0613.csv')
res=df.groupby(['class'])[['name','score']]
for k,v in res:
print(f'class{k}:')
r=v.sort_values('score',ascending=False).reset_index().drop('index',axis=1)
r['rank']=range(1,len(r)+1)
print(r)
运行结果:
class1:
name score rank
0 Evan 100 1
1 Kyle 98 2
2 Rose 88 3
3 Bill 45 4
class2:
name score rank
0 Jack 92 1
1 David 53 2
2 Jery 22 3
class3:
name score rank
0 Denny 97 1
1 Adam 65 2
2 Tom 38 3
如对你有帮助,请点击采纳按钮。
sort 完事
数据存库,使用sql查询语句对数据库中存储的数据使用select * from 表名 order by score desc。
asc 是升序,二desc是降序