用python找出各班级总分前10的学生

信息化聊科技 2025-01-24 14:11:13

代码说明

读取文件:

使用 pd.read_excel 读取原始 Excel 文件。

定义学科列表:

subjects 是需要输出的学科列表。

遍历每个班级:

使用 df['班级'].unique() 获取所有班级名称,并遍历每个班级。

对每个班级,筛选出当前班级的数据。

筛选前10名学生:

使用 sort_values 按总分降序排序,并使用 head(10) 取前10名学生。

选择需要的列:

选择 姓名 和各科成绩列。

将结果写入 Excel:

使用 pd.ExcelWriter 将每个班级的前10名学生信息写入新的 Excel 文件的不同工作表中。

import pandas as pd# 读取原始 Excel 文件input_file = '期末教学质量评价.xlsx'output_file = '每班前10名.xlsx'# 读取 Excel 文件df = pd.read_excel(input_file)# 定义学科列表subjects = ['语文', '数学', '英语', '科学', '历史与社会']# 创建一个 ExcelWriter 对象,用于写入多个工作表with pd.ExcelWriter(output_file) as writer: # 遍历每个班级 for_name in sorted(df['班级'].unique()): # 筛选当前班级的数据 _df = df[df['班级'] ==_name] # 按总分降序排序,取前10名 top_10_students =_df.sort_values(by='总分', ascending=False).head(10) # 选择需要的列:姓名和各科成绩 top_10_students = top_10_students[['姓名'] + subjects] # 将结果写入新的工作表 top_10_students.to_excel(writer, sheet_name=f'{class_name}', index=False)print(f"每班前10名学生信息已保存到 {output_file}")

输出的前10名成线

0 阅读:8

信息化聊科技

简介:感谢大家的关注