> 技术文档 > 用 Python 的 pandas 处理 Excel,这行代码合并 10 个表,我之前做了 2 小时

用 Python 的 pandas 处理 Excel,这行代码合并 10 个表,我之前做了 2 小时

本文围绕使用 Python 的 pandas 库处理 Excel 表格,重点介绍如何高效合并 10 个 Excel 表。先阐述手动合并多个 Excel 表的弊端,凸显 pandas 的优势,接着详细讲解利用 pandas 合并表格的具体步骤,包括环境准备、代码编写与运行等,还分享相关技巧与注意事项,帮助读者摆脱耗时的手动操作,快速掌握这一高效技能,提升数据处理效率。​

在日常的工作和学习中,我们经常会遇到需要处理多个 Excel 表格的情况。比如,一个项目的不同阶段数据分别存放在 10 个 Excel 表中,要进行整体分析就必须将它们合并起来。不少人可能会像曾经的我一样,花费 2 小时甚至更长时间手动合并,过程繁琐且容易出错。而如今,借助 Python 的 pandas 库,只需几行代码就能轻松搞定,极大地提升了工作效率。本文就将详细介绍如何用 pandas 合并 10 个 Excel 表,让你告别繁琐的手动操作。​

一、手动合并 Excel 表的痛点​

在介绍 pandas 合并方法之前,我们先聊聊手动合并多个 Excel 表存在哪些问题。当面对 10 个 Excel 表时,手动合并首先是耗时费力。你需要逐个打开表格,然后复制粘贴数据,这个过程中要不断切换窗口,注意力高度集中,稍有不慎就会出错。其次,容易出现数据遗漏或重复。由于表格数量较多,在复制粘贴的过程中,很可能会漏掉某个表中的部分数据,或者不小心重复粘贴,导致最终的数据不准确,影响后续的分析和决策。另外,灵活性差。如果后续需要对合并的条件进行修改,比如改变合并的列或者筛选特定的数据,手动操作几乎要从头再来,浪费大量时间。​

二、pandas 合并 Excel 表的优势​

相比手动合并,使用 pandas 合并 Excel 表具有诸多明显优势。​

  • 高效快捷:几行代码就能完成多个表格的合并,大大节省时间。对于 10 个 Excel 表的合并,熟练操作的话,几分钟就能完成,而手动合并可能需要数小时。​
  • 准确性高:代码执行过程中,只要逻辑正确,就能避免人为操作带来的失误,保证数据的准确性。​
  • 灵活性强:可以根据不同的需求设置合并条件,比如根据特定列进行合并、筛选特定数据等,方便后续的数据处理和分析。​
  • 可重复性好:当需要再次合并相同格式的表格时,只需运行之前编写的代码即可,无需重复操作,提高工作效率。​

三、使用 pandas 合并 Excel 表的准备工作​

在开始合并操作之前,需要做好一些准备工作。​

  • 安装 Python:如果电脑上还没有安装 Python,可以到 Python 官网(Welcome to Python.org)下载并安装适合自己操作系统的版本。安装过程中,记得勾选 “Add Python to PATH” 选项,方便后续在命令行中使用 Python。​
  • 安装 pandas 库:pandas 是 Python 的一个数据分析库,需要单独安装。打开命令行窗口,输入 “pip install pandas”,然后按下回车键,等待安装完成。如果安装过程中出现问题,可以尝试使用 “pip install -i Simple Index pandas” 命令,通过清华大学的镜像源进行安装,速度可能会更快。​
  • 准备好需要合并的 Excel 表:将 10 个需要合并的 Excel 表放在同一个文件夹中,并且确保这些表格的结构相同,即列名和数据类型一致,这样才能保证合并的顺利进行。如果表格结构不同,需要先进行处理,使其结构一致。​

四、使用 pandas 合并 Excel 表的具体步骤​

一切准备就绪后,就可以开始使用 pandas 合并 Excel 表了。下面详细介绍具体步骤。​

  1. 导入 pandas 库和 os 库:os 库用于处理文件路径,在 Python 代码中,首先需要导入这两个库。代码如下:​

import pandas as pd​

import os​

  1. 设置文件路径:指定存放需要合并的 Excel 表的文件夹路径。可以使用 os 库的 getcwd () 函数获取当前工作目录,也可以手动指定路径。例如:​

  1. 获取文件夹中所有 Excel 文件的名称:使用 os 库的 listdir () 函数获取文件夹中的所有文件名称,然后筛选出扩展名为.xlsx 或.xls 的 Excel 文件。代码如下:​

  1. 创建一个空的 DataFrame 用于存放合并后的数据:DataFrame 是 pandas 库中的一种数据结构,类似于 Excel 表格,可以方便地存储和处理数据。代码如下:​

combined_data = pd.DataFrame()​

  1. 循环读取每个 Excel 文件并合并到空的 DataFrame 中:使用 pandas 的 read_excel () 函数读取每个 Excel 文件,然后使用 concat () 函数将读取到的数据合并到 combined_data 中。代码如下:​

在上述代码中,os.path.join () 函数用于拼接文件路径,确保能够正确找到每个 Excel 文件。read_excel () 函数用于读取 Excel 文件并将其转换为 DataFrame。concat () 函数用于合并 DataFrame,ignore_index=True 表示合并后重新生成索引,避免索引重复。​

6. 将合并后的数据保存到新的 Excel 文件中:使用 to_excel () 函数将合并后的 combined_data 保存为一个新的 Excel 文件。代码如下:​

其中,index=False 表示不保存索引列。​

五、代码运行与结果查看​

编写完代码后,就可以运行代码了。可以使用 Python 的集成开发环境(如 PyCharm、VS Code 等)运行代码,也可以将代码保存为.py 文件,然后在命令行中使用 “python 文件名.py” 命令运行。代码运行完成后,在指定的文件夹中会生成一个名为 “combined_excel.xlsx” 的文件,这个文件就是合并后的结果。可以打开该文件,检查数据是否合并正确,是否存在遗漏或重复等问题。​

六、合并过程中的常见问题及解决方法​

在使用 pandas 合并 Excel 表的过程中,可能会遇到一些问题,下面介绍几种常见问题及解决方法。​

  • 问题一:读取 Excel 文件时出现错误。可能是因为 Excel 文件的格式不正确,或者文件被损坏。解决方法:检查文件格式是否为.xlsx 或.xls,如果不是,将其转换为正确的格式;如果文件损坏,尝试使用备份文件或重新获取文件。​
  • 问题二:合并后的数据存在重复。可能是因为在循环读取文件时,重复读取了某个文件,或者原文件中本身就存在重复数据。解决方法:检查 file_names 列表中是否存在重复的文件名称;如果原文件中存在重复数据,可以使用 drop_duplicates () 函数去除重复数据,代码如下:combined_data = combined_data.drop_duplicates ()。​
  • 问题三:合并后的 Excel 文件中出现乱码。可能是因为编码问题导致的。解决方法:在 to_excel () 函数中指定编码格式,例如:combined_data.to_excel (os.path.join (file_path, \"combined_excel.xlsx\"), index=False, encoding=\"utf-8\")。​

七、pandas 合并 Excel 表的进阶技巧​

除了基本的合并方法外,pandas 还有一些进阶技巧,可以满足更复杂的合并需求。​

  • 根据特定列合并:如果需要根据某个或某几个特定的列进行合并,可以使用 merge () 函数。例如,有两个表格,分别为 table1 和 table2,要根据 “ID” 列进行合并,代码如下:merged_data = pd.merge (table1, table2, on=\"ID\")。​
  • 筛选特定数据合并:在合并之前,可以对每个 Excel 表中的数据进行筛选,只合并符合条件的数据。例如,只合并 “销售额” 大于 1000 的行,代码如下:​

for file_name in file_names:​

file_full_path = os.path.join(file_path, file_name)​

df = pd.read_excel(file_full_path)​

df_filtered = df[df[\"销售额\"] > 1000] # 筛选销售额大于1000的行​

combined_data = pd.concat([combined_data, df_filtered], ignore_index=True)​

  • 处理不同结构的表格:如果需要合并的表格结构不同,可以先对表格进行处理,使其结构一致后再进行合并。例如,添加缺失的列、删除多余的列等。​

八、总结归纳​

本文详细介绍了使用 Python 的 pandas 库合并 10 个 Excel 表的方法。首先阐述了手动合并的痛点,凸显了 pandas 合并的优势,包括高效快捷、准确性高、灵活性强和可重复性好等。然后介绍了合并前的准备工作,如安装 Python 和 pandas 库、准备好 Excel 表等。接着详细讲解了具体的合并步骤,从导入库、设置路径到读取文件、合并数据再到保存结果,每一步都有清晰的代码示例。此外,还介绍了合并过程中可能遇到的常见问题及解决方法,以及一些进阶技巧。​

通过学习本文,相信你已经掌握了使用 pandas 合并 Excel 表的基本方法。相比曾经花费 2 小时手动合并的经历,使用 pandas 只需几分钟就能完成相同的工作,极大地提高了工作效率。在今后的工作和学习中,不妨多尝试使用 pandas 处理 Excel 数据,让数据处理变得更加轻松高效。同时,pandas 还有很多强大的功能等待你去探索,不断学习和实践,能让你在数据处理方面的能力得到进一步提升。