从两个 Excel 表格中提取相关信息,并根据学生的 学号 和 姓名 将第一个表格中的成绩数据填充到第二个表格中(附Python代码)

在这里插入图片描述

💪 专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝《超分辨率重建》
📝《语义分割》
📝《风格迁移》
📝《目标检测》
📝《图像增强》
📝《模型优化》
📝《模型实战部署》
📝《图像配准融合》
📝《数据集》
📝《高效助手》
📝《C++》
📝《Qt》


在这里插入图片描述

一、需求

将从两个 Excel 表格中提取相关信息,并根据学生的 学号 和 姓名 将第一个表格中的成绩数据填充到第二个表格中。其中第一个表格内容是根据学生综合成绩排名排好顺序的,而第二个表格中只有学生学号和姓名,随机排序的。现在需要将表格1中学生的学号和姓名对应的成绩统计好表格2中对应名下。

第一个表格内容见下:

在这里插入图片描述

第二个表格内容见下:

在这里插入图片描述

二、实现

使用 pandas 库来读取 Excel 表格并根据学号和姓名来匹配成绩。

2.1 安装pandas和openpyxl库

在对应环境的终端中使用下面命令安装:

pip install pandas openpyxl -i https://pypi.mirrors.ustc.edu.cn/simple/

2.2 代码参数修改

使用代码时,只需要分别修改两个表格的路径,见下:
在这里插入图片描述

2.3 代码

完整的代码见下:

import pandas as pd

# 读取第一个和第二个Excel表格
file1 = 'Excel/1-4班 综合素质测评汇总表 (2).xlsx'  # 替换为第一个Excel的文件路径
file2 = 'Excel/综测分导入.xls'  # 替换为第二个Excel的文件路径

df1 = pd.read_excel(file1)            # pd.read_excel() 用于读取 Excel 文件
df2 = pd.read_excel(file2)            # df1 和 df2 是读取 Excel 后生成的 Pandas 数据框(DataFrame),它们分别存储了两个 Excel 文件中的数据。

print('df1',df1.columns)              # 打印 df1 和 df2 的列名(columns 属性)
print('df2',df2.columns)


# 根据学号和姓名,将第一个表格中的相关成绩信息填充到第二个表格中
df_merged = pd.merge(df2, df1[['学号', '姓名', '体育成绩', '文体类加分', '惩罚分数','奖励分数','学业成绩','操行考评成绩', '诚信分', '思想政治基础分',  '担任学生工作', '公益活动', '竞赛获奖']],
                     on=['学号', '姓名'],
                     how='left')
'''
pd.merge() 用于合并两个数据框。
df2 是第二个表格数据,作为基础表格。
df1[['学号', '姓名', '体育成绩', '文体类加分', '惩罚分数', '奖励分数', '学业成绩', '操行考评成绩', '诚信分', '思想政治基础分', '担任学生工作', '公益活动', '竞赛获奖']] 表示从第一个表格 df1 中选择这些列,这些列包含需要从第一个表格复制到第二个表格的成绩信息。
on=['学号', '姓名'] 表示按照 学号 和 姓名 两列来进行数据匹配和合并。即,如果 df2 和 df1 中有相同的 学号 和 姓名,那么将 df1 中的相关成绩信息复制到 df2 中。
how='left' 表示进行“左连接”(Left Join)。这意味着保留 df2 中所有的行,即使这些行在 df1 中没有匹配的值。如果 df1 中没有对应的 学号 和 姓名,这些列会填充 NaN(空值)。
'''

# 保存合并后的数据到一个新的Excel表格中
df_merged.to_excel('path_to_output_excel_3.xlsx', index=False)

print("数据已成功合并并保存到新的Excel表格中!")


2.4 运行结果

运行上面代码,数据会重新生成在根目录下的path_to_output_excel_3.xlsx文件夹中,见下:

在这里插入图片描述
在这里插入图片描述

下面是最终处理完的样子,与表格2中所需内容一致。

在这里插入图片描述

三、总结

以上就是从两个 Excel 表格中提取相关信息,并根据学生的 学号 和 姓名 将第一个表格中的成绩数据填充到第二个表格中的详细过程,希望能帮到你!

感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖

关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

视觉研坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值