📅  最后修改于: 2023-12-03 15:08:23.692000             🧑  作者: Mango
有时候,我们需要将多个 Excel 文件中的数据汇总在一个文件中,手动一个一个复制粘贴实在太麻烦了。Python 可以帮我们自动完成这个任务,而 Pandas 库则提供了非常方便的方法。
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.xlsx
、Excel2.xlsx
和 Excel3.xlsx
中的数据分别读取成为 DataFrame,并将这些 DataFrame 拼接在一起,生成一个新的 DataFrame result
。我们可以将 result
写入一个 Excel 文件中,以便查看合并后的数据。
# 将合并后的 DataFrame 写入 Excel 文件
with pd.ExcelWriter('merged.xlsx') as writer:
result.to_excel(writer, index=False)
如果我们需要将同一个文件夹中的多个 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 的官方文档。