41.合并工作簿

李光朱课程 2024-04-14 07:19:56
案例导入

如下图所示,以“姓名”为关联变量,用merge函数外连接合并3个工作簿的数据并保存到Excel文件,保存路径为“D:/Samples/ch04/02 数据合并/合并工作簿”。新文件的名称为“学生成绩_合并.xlsx”。

图1.原始数据表-数学

图2.原始数据表-语文

图3.原始数据表-英语

文心一言提示词

打开百度“文心一言”,输入提示词:“你是pandas专家,文件路径为:D:/Samples/,有3个Excel文件:学生成绩_语文.xlsx、学生成绩_数学.xlsx和学生成绩_英语.xlsx。用pandas导入3个工作表的数据,第1列均为索引列,引擎为"openpyxl"。以“姓名”为关联变量,用merge函数外连接合并3个工作簿的数据并保存到Excel文件,保存路径为“D:/Samples/ch04/02 数据合并/合并工作簿”。新文件的名称为“学生成绩_合并.xlsx”。”

显示结果如下:

为了完成这个任务,我们首先需要导入pandas库,并使用read_excel函数来读取每个Excel文件。然后,我们将使用merge函数以“姓名”为关联变量进行外连接合并。最后,我们将合并后的数据保存到新的Excel文件中。

以下是完成此任务的Python代码:

import pandas as pd# 定义文件路径file_path = 'D:/Samples/'output_path = 'D:/Samples/ch04/02 数据合并/合并工作簿/'output_file = '学生成绩_合并.xlsx'# 读取Excel文件chinese_scores = pd.read_excel(file_path + '学生成绩_语文.xlsx', index_col=0, engine='openpyxl')math_scores = pd.read_excel(file_path + '学生成绩_数学.xlsx', index_col=0, engine='openpyxl')english_scores = pd.read_excel(file_path + '学生成绩_英语.xlsx', index_col=0, engine='openpyxl')# 假设“姓名”是各表中的共同列,并且位于第一列# 使用merge函数进行外连接合并merged_data = pd.merge(chinese_scores, math_scores, on='姓名', how='outer')merged_data = pd.merge(merged_data, english_scores, on='姓名', how='outer')# 保存合并后的数据到新的Excel文件merged_data.to_excel(output_path + output_file)print(f"合并后的数据已保存到 {output_path + output_file}")

请确保在执行此代码之前,你的Python环境中已经安装了pandas和openpyxl库。如果未安装,可以使用以下命令进行安装:

pip install pandas openpyxl

此外,还需要确保提供的文件路径和文件名正确无误,并且Excel文件中确实存在名为“姓名”的列作为合并的关联变量。如果列名不是“姓名”,请将代码中的'姓名'替换为实际的列名。

最后,这段代码假设每个Excel文件中都只有一个工作表,并且你希望基于这个工作表的数据进行合并。如果Excel文件中包含多个工作表,你需要使用sheet_name参数来指定要读取的工作表。例如:pd.read_excel(file_path, sheet_name='Sheet1', index_col=0, engine='openpyxl')。

Python编辑器运行

图4.Python运行结果

图5.合并后的的数据表

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

申明:以上结果皆为实际运行结果,如遇到无法运行可在评论区留言。部分数据来自网络,如有侵权请私信告知,感谢!

0 阅读:8

李光朱课程

简介:感谢大家的关注