Python 合并Excel数据 (Excel文件单sheet)

发布时间 2023-09-28 16:55:26作者: qwerrt9

一、Python批量合并Excel数据《方法1》

import pandas as pd
import glob
import os

# 使用glob.glob函数获取指定目录下所有以.xlsx为扩展名的文件路径,并将结果存储在file_paths列表中
file_paths = glob.glob("C:\\Users\\Admin\\Desktop\\数据核对\\*.xlsx")

# 创建一个空的DataFrame,用于存储合并后的数据
df = pd.DataFrame()

# 循环遍历每个Excel文件,并将其添加到DataFrame中
for file_path in file_paths:
    # 使用pd.read_excel函数读取Excel文件
    temp_df = pd.read_excel(file_path)

    # 使用os.path.basename函数获取文件名(包含扩展名)
    file_name = os.path.basename(file_path)

    # 新增一列名为'file_name'的列,赋值为当前文件名
    temp_df['file_name'] = file_name

    # 将读取到的Excel数据添加到主DataFrame df中,ignore_index=True表示重新设置行索引
    df = df.append(temp_df, ignore_index=True)

# 使用df.to_excel函数将合并后的数据保存为新的Excel文件,index=False表示不保存行索引
df.to_excel("C:\\Users\\Admin\\Desktop\\合并数据.xlsx", index=False)

二、Python批量合并Excel数据《方法2》

import os
import pandas as pd

# 指定包含Excel文件的文件夹路径
folder_path = "C:\\Users\\Admin\\Desktop\\数据核对"

# 获取文件夹中的所有Excel文件
excel_files = [file for file in os.listdir(folder_path) if file.endswith(('.xls', '.xlsx'))]

print(excel_files)  # 打印出找到的Excel文件列表

# 创建一个空的DataFrame来存储合并后的数据
merged_data = pd.DataFrame()

# 遍历所有Excel文件并合并它们
for file in excel_files:
    file_path = os.path.join(folder_path, file)

    # 读取Excel文件,默认情况下会读取第一个工作表
    df = pd.read_excel(file_path)

    # 添加一个新的列,用于标识数据来自哪个Excel文件
    df['SourceFile'] = file

    # 合并数据,将当前Excel文件的数据追加到已合并的数据中
    merged_data = merged_data.append(df, ignore_index=True)

# 将合并后的数据保存为一个新的Excel文件,指定index=False以避免保存索引列
merged_data.to_excel("C:\\Users\\Admin\\Desktop\\合并数据.xlsx", index=False)

# 打印完成消息
print('Excel文件合并完成并保存为合并数据.xlsx,包含标识列SourceFile')