登录
首页 >  文章 >  python教程

Python批量合并Excel表格的实用方法

时间:2026-03-14 13:00:49 111浏览 收藏

本文详解了如何用Python高效合并多个Excel工作表,核心在于利用pandas的`pd.read_excel(sheet_name=None)`一次性读取全部sheet为字典,再通过`pd.concat()`无缝整合为统一DataFrame;同时提供实用技巧——添加`source_sheet`列精准追踪数据来源、按需筛选指定sheet进行合并,并特别提醒列结构一致性这一关键细节,避免NaN隐患,让多表整合既灵活又可靠。

Python如何对多个sheet表进行整合?

Python可以通过 pandas 结合 openpyxlxlrd 等库来读取和操作 Excel 文件中的多个 sheet,并将它们整合成一个统一的数据结构。最常用的方法是把所有 sheet 的数据合并成一个 DataFrame,便于后续分析。

读取多个sheet并合并

使用 pandas 的 read_excel 方法,可以指定读取某个 sheet,或者一次性读取所有 sheet。通过设置 sheet_name=None,会返回一个字典,键是 sheet 名称,值是对应的数据框。

示例代码:

import pandas as pd
<h1>读取所有 sheet</h1><p>file_path = 'data.xlsx'
all_sheets = pd.read_excel(file_path, sheet_name=None)</p><h1>将所有 sheet 的数据合并成一个 DataFrame</h1><p>combined_df = pd.concat(all_sheets.values(), ignore_index=True)</p><h1>查看结果</h1><p>print(combined_df.head())
</p>

保留 sheet 来源信息

如果需要知道每一行数据来自哪个 sheet,可以在合并前为每张表添加一个标识列。

示例代码:

import pandas as pd
<p>file_path = 'data.xlsx'
all_sheets = pd.read_excel(file_path, sheet_name=None)
df_list = []</p><p>for sheet_name, df in all_sheets.items():
df['source_sheet'] = sheet_name  # 添加 sheet 名称作为新列
df_list.append(df)</p><h1>合并所有带来源标记的表</h1><p>combined_df = pd.concat(df_list, ignore_index=True)
</p>

筛选特定 sheet 进行整合

若不需要全部 sheet,可手动指定 sheet 名称或根据条件过滤。

示例代码:

# 只读取指定的 sheet
selected_sheets = ['Sheet1', 'Sheet2']
selected_data = pd.read_excel(file_path, sheet_name=selected_sheets)
combined_df = pd.concat(selected_data.values(), ignore_index=True)

基本上就这些。只要掌握 pd.read_excel(sheet_name=None)pd.concat(),就能灵活处理多 sheet 整合问题。注意确保各 sheet 的列结构相似,否则合并后可能出现 NaN 值。不复杂但容易忽略细节。

到这里,我们也就讲完了《Python批量合并Excel表格的实用方法》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>