You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将多份带多工作表的Excel文件合并为Pandas DataFrame

解决多Excel文件及多工作表合并到Pandas DataFrame的问题

一、读取单个含多工作表的Excel文件到DataFrame

如果你的Excel文件包含多个工作表,使用pandas的read_excel时,指定sheet_name=None会返回一个字典——键是工作表名称,值是对应工作表的DataFrame:

import pandas as pd

# 读取单个Excel的所有工作表
excel_dict = pd.read_excel("你的文件路径.xlsx", sheet_name=None)

# 查看所有工作表名称
print(excel_dict.keys())

# 若所有工作表结构一致,合并成单个DataFrame
single_df = pd.concat(excel_dict.values(), ignore_index=True)

如果工作表结构不同,可单独提取指定工作表:

# 提取名为"Sheet1"的工作表
sheet1_df = pd.read_excel("你的文件路径.xlsx", sheet_name="Sheet1")

二、合并多个Excel文件(含1-3个工作表)为单个DataFrame

按以下步骤操作:

  1. 遍历目标文件夹下的所有Excel文件
  2. 读取每个文件的所有工作表
  3. 收集所有工作表的DataFrame到列表
  4. 合并列表内的所有DataFrame

代码示例:

import pandas as pd
import os

# 存放所有Excel文件的文件夹路径
folder_path = "你的Excel文件文件夹路径"

# 初始化空列表,用于存储所有工作表的DataFrame
all_dfs = []

# 遍历文件夹中的Excel文件
for filename in os.listdir(folder_path):
    if filename.endswith((".xlsx", ".xls")):
        file_path = os.path.join(folder_path, filename)
        # 读取当前文件的所有工作表
        excel_dict = pd.read_excel(file_path, sheet_name=None)
        # 将每个工作表的DataFrame加入列表
        for df in excel_dict.values():
            all_dfs.append(df)

# 合并所有DataFrame为单个(假设所有表结构一致)
final_df = pd.concat(all_dfs, ignore_index=True)

三、数据清洗常用操作

合并完成后,可根据需求执行以下清洗步骤:

  • 处理缺失值:final_df.dropna() 或 final_df.fillna(0)
  • 去除重复行:final_df.drop_duplicates()
  • 统一列名:final_df.columns = ["列名1", "列名2", ...]
  • 转换数据类型:final_df["目标列"] = final_df["目标列"].astype(int)

注意:若不同工作表/文件的列结构不一致,合并前需对齐列名——可使用pd.concat的join="outer"参数保留所有列,或提前筛选出结构一致的列再合并。

内容的提问来源于stack exchange,提问作者user21010083

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 03:15:50