

包含语文、数学、外语成绩、总分成绩及总分名次:
读取三个Excel文件(语文、数学、外语成绩单) 通过"序号"和"姓名"列合并三个数据表 计算每个学生的总分(语文+数学+外语) 根据总分计算排名(从高到低) 创建包含所有信息的新DataFrame 将结果保存为新的Excel文件 Python实现代码:
python
import pandas as pd
# 读取三个Excel文件
chinese_df = pd.read_excel('file-745773956418437.xlsx', sheet_name='Sheet1')
math_df = pd.read_excel('file-745774012050309.xlsx', sheet_name='Sheet1')
foreign_df = pd.read_excel('file-745774058687365.xlsx', sheet_name='Sheet1')
# 合并三个数据表(通过序号和姓名)
merged_df = pd.merge(chinese_df, math_df, on=['序号', '姓名', '班级'], how='inner')
merged_df = pd.merge(merged_df, foreign_df, on=['序号', '姓名', '班级'], how='inner')
# 计算总分
merged_df['总分'] = merged_df['语文'] + merged_df['数学'] + merged_df['外语']
# 计算排名(从高到低)
merged_df['总分名次'] = merged_df['总分'].rank(ascending=False, method='min').astype(int)
# 选择需要的列并重新排序
result_df = merged_df[['序号', '姓名', '班级', '语文', '数学', '外语', '总分', '总分名次']]
# 按总分名次排序
result_df = result_df.sort_values('总分名次')
# 保存结果到新的Excel文件
result_df.to_excel('合并成绩单.xlsx', index=False, sheet_name='Sheet1')
# 打印前5行结果作为验证
print("合并后的成绩单前5行:")
print(result_df.head().to_markdown(index=False))
# 打印总分最高和最低的学生信息
print("\n总分最高的学生:")
print(result_df.iloc[0].to_markdown())
print("\n总分最低的学生:")
print(result_df.iloc[-1].to_markdown())
output
合并后的成绩单前5行:
| 序号 | 姓名 | 班级 | 语文 | 数学 | 外语 | 总分 | 总分名次 |
|-------:|:-------|-------:|-------:|-------:|-------:|-------:|-----------:|
| 7302 | 秦子琪 | 3 | 83 | 90 | 91 | 264 | 1 |
| 7301 | 钟雪纯 | 3 | 81 | 86 | 91 | 258 | 2 |
| 7308 | 曹馨元 | 3 | 74.5 | 97 | 81 | 252.5 | 3 |
| 7305 | 张骁 | 3 | 84 | 82 | 83 | 249 | 4 |
| 7303 | 潘永康 | 3 | 60.5 | 96 | 91 | 247.5 | 5 |
总分最高的学生:
| | 0 |
|:---------|:-------|
| 序号 | 7302 |
| 姓名 | 秦子琪 |
| 班级 | 3 |
| 语文 | 83.0 |
| 数学 | 90.0 |
| 外语 | 91 |
| 总分 | 264.0 |
| 总分名次 | 1 |
总分最低的学生:
| | 41 |
|:---------|:-------|
| 序号 | 7331 |
| 姓名 | 李佳林 |
| 班级 | 3 |
| 语文 | 24.0 |
| 数学 | 42.0 |
| 外语 | 13 |
| 总分 | 79.0 |
| 总分名次 | 42 |
文件内容示例:
序号 姓名 班级 语文 数学 外语 总分 总分名次
7302 秦子琪 3 83.0 90.0 91 264.0 1
7301 钟雪纯 3 81.0 86.0 91 258.0 2
文件内容示例:
序号 姓名 班级 语文 数学 外语 总分 总分名次 7302 秦子琪 3 83.0 90.0 91 264.0 1 7301 钟雪纯 3 81.0 86.0 91 258.0 2 … … … … … … … … 文件同时包含总分最高(秦子琪,264分)和最低(李佳林,79分)的学生信息。