#想要合并4个Excel数据(数据是23年数模比赛数据),根据文件里面的公共列合并数据(四个文件里面都含有该列)
#报错情况
成功读取文件: 附件1.xlsx
读取文件 附件1.xlsx 失败,错误信息: '单品编码'
成功读取文件: 附件2.xlsx
读取文件 附件2.xlsx 失败,错误信息: '单品编码'
成功读取文件: 附件3.xlsx
读取文件 附件3.xlsx 失败,错误信息: '单品编码'
成功读取文件: 附件4.xlsx
#代码如下:
import pandas as pd
from openpyxl import Workbook
import os
# 定义要合并的Excel文件所在的文件夹路径 folder_path:文件夹路径
folder_path = 'D:/数据/国赛数据/'
# 获取文件夹中所有Excel文件的文件名 file_names:文件名 listdir:列表目录 endswith:以
file_names = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') and not f.startswith('~$')]
# 创建一个空的DataFrame用于存储合并后的数据 merged_data:合并数据
merged_data = pd.DataFrame()
# 遍历每个Excel文件并读取数据(检查读取数据报错文件)
for file_name in file_names:
file_path = os.path.join(folder_path, file_name)# 构建完整的文件路径 path:路径
try:
data = pd.read_excel(file_path, engine='openpyxl')#读取文件
print(f"成功读取文件: {file_name}")
# 检查并合并数据
if '单品编码' in data.columns:
merged_data = pd.merge(merged_data, data, on='单品编码', how='outer', sort=False)
else:
print(f"文件 {file_name} 中缺少'单品编码'列,无法进行合并")
except Exception as e:
print(f"读取文件 {file_name} 失败,错误信息: {str(e)}")
# 将合并后的数据保存到新的Excel文件中
output_path = 'D:/数据/国赛数据/合并版.xlsx'
merged_data.to_excel(output_path, index=False)
