pandas分析学生成绩

数据名称:2020cj.xlsx
请使用pandas库对数据文件中的学生成绩进行分析。要求如下

  1. 空白成绩使用0填充
  2. 智育总分按从大到小排序列出前10名学生的所有智育成绩信息,包括智育总分(列名为智育总分,保留一位小数)。结果保存在变量df1中,df1为pandas的dataframe对象。
  3. 读取德育成绩,并按照从高到底排序,结果保存在df2对象中,df2为dataframe
  4. 读取体育成绩,结果保存在变量df3中,df3为dataframe类型的变量
  5. 体育成绩按照从高到低排序,存放在df3_top中
  6. 统计学生的总分,综合评分=智育0.7+德育0.1+体育*0.2 统计结果存放在变量df4中,df4中至少包含字段姓名,综合评分

img

img

img


import pandas as pd

df11=pd.read_excel('2020cj.xlsx',sheet_name='智育')
df2=pd.read_excel('2020cj.xlsx',sheet_name='德育')
df3=pd.read_excel('2020cj.xlsx',sheet_name='体育')

df11['智育总分']=round(df11.iloc[:,1:].sum(axis=1),1)

df1=df11.head(10)

df2=df2.sort_values(by='德育分',ascending=0)

df3_top=df1.sort_values(by='体育分',ascending=0)

df4=df11.merge(df2,on=['学号','姓名'])
df4=df4.merge(df3,on=['学号','姓名'])

智育0.7+德育0.1+体育*0.2

df4['综合评分']=0.7*df4['智育总分']+0.2*df4['德育分']+0.1*df4['体育分']

df4=df4[['姓名','综合评分']]

print(df1)
print(df2)
print(df3)
print(df4)

参考:pandas学生成绩分析代码解读
https://blog.csdn.net/weixin_41704077/article/details/124522323