将文件夹内的多个excel合并在一个excel的一个sheet中,按照列“X”和列“Y”进行横向merge。
import os
import pandas as pd
# 设置文件夹路径
folder_path = r'D:\itm\excle'
# 获取文件夹下所有的 Excel 文件
all_files = os.listdir(folder_path)
excel_files = [f for f in all_files if f.endswith('.xlsx') or f.endswith('.xls')]
# 创建一个空的 DataFrame 用于存储所有数据
all_data = pd.DataFrame()
# 逐个读取 Excel 文件,并将每个文件的内容存储到一个新的 sheet 中
for file in excel_files:
df = pd.read_excel(os.path.join(folder_path, file))
df = df.drop(columns=[df.columns[0], df.columns[1]]) # 去掉第一列和第二列
if all_data.empty:
all_data = df
else:
all_data = pd.merge(all_data, df, on=['X', 'Y'], how='outer')
# 将所有数据存储到一个新的 Excel 文件中
all_data.to_excel(r"D:\itm\合并.xlsx", index=False)
合并前不需要去前两列的,可以不加以下这行:
df = df.drop(columns=[df.columns[0], df.columns[1]]) # 去掉第一列和第二列