import numpy as np import pandas as pd
……
def score_processing(input_file, output_file):
函数功能如下: 读入学生成绩的excel文件,按要求修改列名并查询满足一定条件的学生。
新增一列备注,初始化为全0,将满足上述条件的学生备注改为1
将满足一个新条件的学生的平时总成绩增加5分 最后并按照平时总成绩、作业成绩、考勤成绩三列进行由大到小排序,将排序后的结果保存到一个新的excel文件。
:param input_file: 输入文件路径
:param output_file: 输出文件的路径
# 读取数据
data = pd.read_excel(【1】)
# 修改列名:'作业':'作业成绩','考勤':'考勤成绩'
data.rename(【2】=({'作业':'作业成绩','考勤':'考勤成绩'}),inplace=True)
#查询满足 平时总成绩、作业成绩、考勤成绩均大于75的学生名单
query_out = data.【3】( '平时总成绩>=75 & 作业成绩>=75 & 考勤成绩 >=75')
#新增一列备注,用以标记出满足上述条件的学生,将该列全部初始化为0,其后再将满足上述条件的学生对应改为1
【4】 = 0
#将满足上述条件的学生的行索引拿到
query_list = query_out.【5】
#遍历原excel,将满足上述条件的学生的备注改为1
for i in data.index: if i in 【6】:
data.iloc[【7】,【8】] = 1
#将这部分满足条件的学生总成绩增加5分
data.loc[(data['平时总成绩'] >= 85) & (data['作业成绩'] >= 85) & (data['考勤成绩'] >= 85), '平时总成绩'] += 5
#按照平时总成绩、作业成绩、考勤成绩三列进行由大到小排序
data = data.【9】(by=['平时总成绩', '作业成绩', '考勤成绩'], ascending=False)
#保存结果到新的csv文件中
data.【10】(output_file, index=False)
<<<<<<<<<<<<<<<<<函数调用<<<<<<<<<<<<<<<<<<<<<<< <
真实的学生成绩excel文件在:C:\\Users\\jinwanchiji\\Desktop\\test.xlsx路径下
该代码文件所在路径为C:\\Users\\jinwanchiji\\Desktop\\test.ipynb
input_excel = "C:\\Users\\jinwanchiji\\Desktop\\test.xlsx"
out_excel = "C:\\Users\\jinwanchiji\\Desktop\\test_out.xlsx"
score_processing(input_excel, out_excel)