Tender ོᩚᩚ769 2022-05-30 17:17 采纳率: 50%
浏览 125
已结题

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

  • 写回答

2条回答 默认 最新

  • 一切因为有你 2022-05-30 20:08
    关注
    
    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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月14日
  • 已采纳回答 6月6日
  • 创建了问题 5月30日

悬赏问题

  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 MATLAB中streamslice问题
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端