📌  相关文章
📜  如何使用 python 或 pandas 将多个 excel 文件合并到一个文件中 - Python (1)

📅  最后修改于: 2023-12-03 15:08:23.692000             🧑  作者: Mango

如何使用 Python 或 Pandas 将多个 Excel 文件合并到一个文件中

有时候,我们需要将多个 Excel 文件中的数据汇总在一个文件中,手动一个一个复制粘贴实在太麻烦了。Python 可以帮我们自动完成这个任务,而 Pandas 库则提供了非常方便的方法。

1. Pandas 的 concat 函数

Pandas 的 concat 函数可以将多个 DataFrame 或 Series 沿着指定的轴(默认是行轴)进行拼接。我们可以先读取多个 Excel 文件来生成多个 DataFrame,然后再将这些 DataFrame 拼接在一起。

import pandas as pd

# 读取多个 Excel 文件,并存储在一个字典中
excels = {'Excel1': pd.read_excel('Excel1.xlsx'),
          'Excel2': pd.read_excel('Excel2.xlsx'),
          'Excel3': pd.read_excel('Excel3.xlsx')}

# 使用 concat 函数将字典中的 DataFrame 拼接在一起
result = pd.concat(excels.values(), ignore_index=True)

以上代码将 Excel1.xlsxExcel2.xlsxExcel3.xlsx 中的数据分别读取成为 DataFrame,并将这些 DataFrame 拼接在一起,生成一个新的 DataFrame result。我们可以将 result 写入一个 Excel 文件中,以便查看合并后的数据。

# 将合并后的 DataFrame 写入 Excel 文件
with pd.ExcelWriter('merged.xlsx') as writer:
    result.to_excel(writer, index=False)
2. Python 的 glob 函数

如果我们需要将同一个文件夹中的多个 Excel 文件合并在一起,那么可以使用 Python 中的 glob 函数来获取这些文件的文件名,然后再读取这些文件并拼接在一起。

import glob

# 获取所有 xlsx 文件的文件名
filenames = glob.glob('*.xlsx')

# 读取所有 xlsx 文件,并拼接在一起
excels = [pd.read_excel(f) for f in filenames]
result = pd.concat(excels, ignore_index=True)

以上代码将当前文件夹中所有以 .xlsx 结尾的文件的文件名存储在列表 filenames 中,然后将这些文件读取成为 DataFrame 并拼接在一起,生成一个新的 DataFrame result。最后,将 result 写入一个 Excel 文件中。

# 将合并后的 DataFrame 写入 Excel 文件
with pd.ExcelWriter('merged.xlsx') as writer:
    result.to_excel(writer, index=False)

至此,我们已经成功将多个 Excel 文件合并成一个文件了。如果您希望深入了解 Pandas 的 concat 函数和 Python 的 glob 函数,请查看 Pandas 和 Python 的官方文档。