如何用Python合并一个文件夹中的所有excel文件

  • Post category:Python

合并一个文件夹中的所有excel文件,可以使用Python的pandas库来实现。下面是一个详细的步骤。

步骤1:导入需要的库

首先,需要导入pandas库用于数据处理,以及os库用于获取文件夹中所有excel文件的路径。代码如下:

import pandas as pd
import os

步骤2:获取文件夹中所有excel文件的路径

使用os库的listdir方法遍历文件夹中的所有文件,检查是否有后缀名为”.xlsx”的excel文件,如果有则将其完整路径加入一个列表中。代码如下:

file_path = "文件夹目录路径"
excel_files = []
for file in os.listdir(file_path):
    if file.endswith(".xlsx"):
        excel_files.append(os.path.join(file_path, file))

步骤3:读取所有excel文件中的数据

使用pandas库的read_excel方法读取每一个excel文件中的数据,然后将它们合并成一个大的DataFrame。如果excel文件的格式不同,需要注意合并后的DataFrame中的列要与所有文件中的列相同。代码如下:

dfs = []
for file in excel_files:
    dfs.append(pd.read_excel(file))
merged_df = pd.concat(dfs, ignore_index=True)

这里使用了pandas的concat方法来将每个excel表格合并成一个大表格。ignore_index=True表示重置序列。

步骤4:将合并后的数据输出到新的excel文件中

最后,使用pandas库的to_excel方法将合并后的数据输出到新的excel文件中。代码如下:

merged_df.to_excel("合并后的文件路径.xlsx", index=False)

在上述代码中,我们指定了生成的文件路径,并设置了index=False以不输出行索引。

通过以上步骤,我们就可以成功地将一个文件夹中的所有excel文件合并成一个excel文件。

完整代码如下:

import pandas as pd
import os

file_path = "文件夹目录路径"
excel_files = []
for file in os.listdir(file_path):
    if file.endswith(".xlsx"):
        excel_files.append(os.path.join(file_path, file))

dfs = []
for file in excel_files:
    dfs.append(pd.read_excel(file))
merged_df = pd.concat(dfs, ignore_index=True)

merged_df.to_excel("合并后的文件路径.xlsx", index=False)