为每个班级的学生进行排名次

img

以上是各班级学生成绩表,要求实现:“为每个班级的学生进行排名次”

使用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是降序