求解答:dataframe求各班的及格率

img


如何统计出各班及格的人数?
df.groupby('班级'),然后怎么count?及格率怎么求?求大神解答

可以先取出及格人数的数据框,再用groupby分组计数。参考代码:

import pandas as pd
df=pd.DataFrame({'id':[2101,2102,2103,2104,2105,2106],'name':['a','b','c','d','e','f'],'class':['c1','c2','c2','c3','c1','c3'],'score':[78,62,51,70,55,82]})

d=df[df['score']>=60]
g=d.groupby('class')['score'].count()
print('各班及格人数:\n', g.to_dict())
n = df.groupby('class')['id'].count()
r=g/n*100
print('各班及格率:\n',r.to_dict())

运行结果:

F:\2021\qa\ot2>t9
各班及格人数:
 {'c1': 1, 'c2': 1, 'c3': 2}
各班及格率:
 {'c1': 50.0, 'c2': 50.0, 'c3': 100.0}

如果解答对你有帮助,请点击采纳按钮。