Python将文件夹中多个Excel表格合并在一起,纵向合并

引言

在日常工作和数据分析中,我们经常会遇到需要合并多个Excel表格的情况。Python作为一种强大的编程语言,可以提供简单而有效的解决方案。

在本文中,我们将介绍如何使用Python合并文件夹中多个Excel表格,并将它们纵向合并为一个表格。

准备工作

在开始之前,我们需要安装以下Python库:

  • pandas:用于处理和操作数据的库
  • os:用于访问文件和文件夹的库

可以使用以下命令来安装这些库:

pip install pandas
pip install openpyxl

同时,你还需要准备一个包含多个Excel表格的文件夹。每个Excel表格应该具有相同的列名和数据类型,以便可以正确地进行合并。

流程图

flowchart TD;
    A[开始]-->B[指定文件夹路径];
    B-->C[读取文件夹中的所有Excel文件];
    C-->D[创建一个空的DataFrame];
    D-->E[循环遍历每个Excel文件];
    E-->F[读取当前Excel文件的所有数据];
    F-->G[将数据添加到DataFrame中];
    G-->H[保存合并后的结果为一个新的Excel文件];
    H-->I[结束];

代码示例

下面是一个完整的代码示例,演示了如何将文件夹中的多个Excel表格合并为一个表格。

import os
import pandas as pd

# 指定文件夹路径
folder_path = "path/to/folder"

# 读取文件夹中的所有Excel文件
excel_files = [file for file in os.listdir(folder_path) if file.endswith(".xlsx")]

# 创建一个空的DataFrame
merged_data = pd.DataFrame()

# 循环遍历每个Excel文件
for file in excel_files:
    # 读取当前Excel文件的所有数据
    file_path = os.path.join(folder_path, file)
    data = pd.read_excel(file_path)
    
    # 将数据添加到DataFrame中
    merged_data = merged_data.append(data, ignore_index=True)

# 保存合并后的结果为一个新的Excel文件
output_file = "merged_data.xlsx"
merged_data.to_excel(output_file, index=False)

print("合并完成!结果保存为 %s" % output_file)

代码解析

以下是上述代码示例的详细解析:

  1. 导入所需的库:
import os
import pandas as pd
  1. 指定文件夹路径:
folder_path = "path/to/folder"

folder_path 替换为你的文件夹路径。

  1. 读取文件夹中的所有Excel文件:
excel_files = [file for file in os.listdir(folder_path) if file.endswith(".xlsx")]

使用列表推导式遍历文件夹中的所有文件,并筛选出以 .xlsx 结尾的Excel文件。

  1. 创建一个空的DataFrame:
merged_data = pd.DataFrame()

使用 pd.DataFrame() 创建一个空的DataFrame,用于存储合并后的数据。

  1. 循环遍历每个Excel文件:
for file in excel_files:

使用 for 循环遍历每个Excel文件。

  1. 读取当前Excel文件的所有数据:
file_path = os.path.join(folder_path, file)
data = pd.read_excel(file_path)

使用 os.path.join() 将当前文件的路径与文件夹路径拼接起来,然后使用 pd.read_excel() 读取Excel文件的数据。

  1. 将数据添加到DataFrame中:
merged_data = merged_data.append(data, ignore_index=True)

使用 append() 方法将当前Excel文件的数据添加到空的DataFrame中。ignore_index=True 参数可以重新生成索引,确保所有数据按顺序添加。

  1. 保存合并后的结果为一个新的Excel文件:
output_file = "merged_data.xlsx"
merged_data.to_excel(output_file, index=False)

使用 to_excel() 方法将合并后的数据保存为一个新的Excel文件。index=False 参数可以去除索引列。

  1. 完成:
print("合并完成!结果保存为 %s" % output_file)

打印合并完成的