用php代码输出成绩的最高分,中学成绩分析-提取每科最高分学生名单
本帖最后由 lvcaolhx 于 2019-11-20 10:53 编辑
import pandas as pd #load_data 1.0版
def load_data():
global start,end,sort_kemu_list,df
df=pd.read_excel('数据1_2.xlsx',sheet_name='成绩',usecols=list(range(0,10)))
df['总分']=df.loc[:,'语文':'生物'].sum(axis=1)
df['班名']=df.groupby('班级').总分.rank(method='min',ascending=False).astype(int)
df['年名']=df.总分.rank(method='min',ascending=False).astype(int)
source_biaot_list=list(df.columns) #原始数据表头
print( source_biaot_list)
start,end=input('>>> 请输入科目起始列和结束列(从0开始数),空格隔开,回车结束:').split()
kemudata_cols=source_biaot_list[int(start):int(end)+1] #科目表头
default_cols=['语文','数学','外语','英语','物理','化学', '生物', '政治','历史', '地理']
sort_kemu_list=[x for i in default_cols for x in source_biaot_list if i in x] #将科目表头按照设定的顺序排列
source_biaot_list[int(start):int(end)+1]=sort_kemu_list
sort_biaot_list= source_biaot_list
print(sort_biaot_list)
df=df[sort_biaot_list] #将最终表的列序按照设定的顺序排列
return df
load_data()
#df[df['语文']==111]
def get_col(x_df,colx):
col0=['姓名','班级']
col0.extend(colx.split(' '))
df2=x_df[col0]
return df2.loc[df2[colx]==df2[colx].max()]
yuwen_df=get_col(df,'语文').T
yuwen_df.index = ['姓名','班级','最高分']
shuxue_df=get_col(df,'数学').T
shuxue_df.index = ['姓名','班级','最高分']
print(yuwen_df)
yingyu_df=get_col(df,'英语').T
yingyu_df.index = ['姓名','班级','最高分']
wuli_df=get_col(df,'物理').T
wuli_df.index = ['姓名','班级','最高分']
shengwu_df=get_col(df,'生物').T
shengwu_df.index = ['姓名','班级','最高分']
huaxue_df=get_col(df,'化学').T
huaxue_df.index = ['姓名','班级','最高分']
print(shuxue_df)
print(yingyu_df)
result=pd.merge(yuwen_df,shuxue_df,left_index=True, right_index=True, how='left')
result=pd.merge(result,yingyu_df,left_index=True, right_index=True, how='left')
result=pd.merge(result,wuli_df,left_index=True, right_index=True, how='left')
result=pd.merge(result,huaxue_df,left_index=True, right_index=True, how='left')
result=pd.merge(result,shengwu_df,left_index=True, right_index=True, how='left')
print(result)
result.to_excel(r'D:\test\retmax.xls')
思维混乱,代码拼凑而成,能优雅的地方很多;
程序输出与目标输出表格相差很大,实在没能力了,请各位大神指点
数据姓名脱敏处理
请各位大神,代码优化,输出格式匹配目标表格.
源代码与数据:
链接:https://pan.baidu.com/s/1lW8RfSmI4sdUeJKUVClf2Q
提取码:2d1l
复制这段内容后打开百度网盘手机App,操作更方便哦
更新:
输出表头,简化了代码:
import pandas as pd #2.0版
def load_data():
global start,end,sort_kemu_list,df
df=pd.read_excel('数据2.xlsx',sheet_name='成绩',usecols=list(range(0,10)))
df['总分']=df.loc[:,'语文':'生物'].sum(axis=1)
df['班名']=df.groupby('班级').总分.rank(method='min',ascending=False).astype(int)
df['年名']=df.总分.rank(method='min',ascending=False).astype(int)
source_biaot_list=list(df.columns) #原始数据表头
print( source_biaot_list)
start,end=input('>>> 请输入科目起始列和结束列(从0开始数),空格隔开,回车结束:').split()
kemudata_cols=source_biaot_list[int(start):int(end)+1] #科目表头
default_cols=['语文','数学','外语','英语','物理','化学', '生物', '政治','历史', '地理']
sort_kemu_list=[x for i in default_cols for x in source_biaot_list if i in x] #将科目表头按照设定的顺序排列
source_biaot_list[int(start):int(end)+1]=sort_kemu_list
sort_biaot_list= source_biaot_list
print(sort_biaot_list)
df=df[sort_biaot_list] #将最终表的列序按照设定的顺序排列
return df
def get_col(x_df,colx):
col0=['姓名','班级']
col0.extend(colx.split(' '))
df2=x_df[col0]
df3=df2.loc[df2[colx]==df2[colx].max()]
df3.reset_index(drop=True, inplace=True)#重置筛选后的索引
df3=df3.T
df3.index =['姓名','班级','最高分'] #重设行索引
df3.columns = colx + df3.columns.astype(str) #重设列索引
return df3
load_data()
yuwen_df=get_col(df,'语文')
shuxue_df=get_col(df,'数学')
print(yuwen_df)
yingyu_df=get_col(df,'英语')
wuli_df=get_col(df,'物理')
shengwu_df=get_col(df,'生物')
huaxue_df=get_col(df,'化学')
print(shuxue_df)
print(yingyu_df)
result=pd.merge(yuwen_df,shuxue_df,left_index=True, right_index=True, how='left')
result=pd.merge(result,yingyu_df,left_index=True, right_index=True, how='left')
result=pd.merge(result,wuli_df,left_index=True, right_index=True, how='left')
result=pd.merge(result,huaxue_df,left_index=True, right_index=True, how='left')
result=pd.merge(result,shengwu_df,left_index=True, right_index=True, how='left')
print(result)
max.png
(32.69 KB, 下载次数: 0)
2019-11-16 18:53 上传
输出结果与目标表格
用php代码输出成绩的最高分,中学成绩分析-提取每科最高分学生名单相关推荐
- 2021广西灵山中学高考成绩查询,灵山中学成绩查询系统
技校网专门为您推荐的类似问题答案 问题1: 岑溪市体育实验中学成绩查询 2010年梧州中考分数线. 2010年中考报考参照:2009年梧州中考录取分数线. 市教育局通报今年市区中考情况,确定继续根据考 ...
- 题9.5:有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输人10个 学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓 名、3门课程成绩、平均分数)。
题目 本题是谭浩强<C程序设计课后习题>题9.5. 题目: 有10个学生,每个学生的数据包括学号.姓名.3门课程的成绩,从键盘输人10个 学生数据,要求输出3门课程总平均成绩,以及最高分的 ...
- 习题 9.5 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
C程序设计(第四版) 谭浩强 习题9.5 个人设计 习题 9.5 有10个学生,每个学生的数据包括学号.姓名.3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数 ...
- 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据 要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩)
/*有10个学生,每个学生的数据包括学号.姓名.3门课程的成绩,从键盘输入10个学生数据 要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号.姓名.3门课程成绩)*/#include < ...
- 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
有10个学生,每个学生的数据包括学号.姓名.3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号.姓名.3门课程成绩.平均分数). 方法一: #inc ...
- (C语言)有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数)
有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数) #define _C ...
- C语言:编程题(在某次比赛中,有10个评委给选手打分。现要求编程:1)输入一位选手的10个成绩;2)去掉一个最高分,一个最低分,求出平均成绩;3)输出该选手的平均成绩,保留一位小数。
具体如下: 编程题(在某次比赛中,有10个评委给选手打分.现要求编程:1)输入一位选手的10个成绩:2)去掉一个最高分,一个最低分,求出平均成绩:3)输出该选手的平均成绩,保留一位小数.(17分) 基 ...
- (附源码)springboot中学成绩管理 毕业设计100854
Springboot中学成绩管理系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和 ...
- 输入4个同学的姓名学号,语文数学英语信息计算平均成绩,按平均成绩高低排序输出java,c++实现
题目: /* 输入4个同学的姓名学号,语文数学英语信息计算平均成绩,按平均成绩高低排序输出 */ 代码部分: C++实现 #include<iostream> using names ...
最新文章
- 安卓收取费用_作为自由职业者应收取的费用:以价值为基础的定价是否能达到炒作的目的?...
- python中lambda 表达式(无参数、一个参数、默认参数、可变参数(*args、**kwargs)、带判断的lambda、列表使用lambda)
- 常用[js,css,jquery,html]
- day01_Loadrunner基础流程
- 大话中文文本分类之前数据处理
- muduo之EventLoopThreadPool
- linux下监控用户的操作记录
- php curl和file get,PHP cURL与file_get_contents
- 红帽Openshift:入门–云中的Java EE6
- defaultdict python3,Python collections.defaultdict() 与 dict的使用和区别|python3教程|python入门|python教程...
- java设置jdk环境变量
- 如何将cad格式转化为qt可以识别的图像_看BIM技术如何计算土方工程量
- 三七互娱U3D面经2021.3.31
- PHP是迄今为止最好的web平台
- linux安装中文输入法
- unity自带录屏UnityRecorder
- 139邮箱java版,139邮箱登录及发送短信
- PSQLException: An I/O error occurred问题排查
- 错误提示Incompatible file format错误原因和解决方案
- 好数推荐 数据堂平均音色语音库