📌  相关文章
📜  将具有多个工作表的多个 excel 文件合并到一个数据框中 - Python (1)

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

将具有多个工作表的多个 excel 文件合并到一个数据框中 - Python

在实际的数据分析和处理中,经常会遇到需要将多个 Excel 文件中的数据合并到一个数据框中的情况。本文介绍如何使用 Python 语言实现这一操作。

步骤
  1. 导入所需的 Python 库

我们需要使用 pandas 和 os 两个库来操作 Excel 文件。

import pandas as pd
import os
  1. 读取 Excel 文件中的数据

我们可以使用 pandas 库中的 read_excel 方法来读取 Excel 文件中的数据。如果需要读取多个工作表,可以使用 sheet_name 参数来指定要读取的工作表名称。以下是示例代码:

df = pd.read_excel('filename.xlsx', sheet_name='sheetname')

如果要读取多个工作表,则可以将 sheet_name 参数设置为 None,然后使用 keys 参数来指定需要读取的工作表名称。以下是示例代码:

dfs = pd.read_excel('filename.xlsx', sheet_name=None, keys=['sheet1', 'sheet2'])

这将返回一个字典对象,其中每个工作表的名称是键,每个数据框对象是值。

  1. 合并多个数据框

一旦我们读取了所有的 Excel 文件和工作表中的数据,我们就可以将它们合并到一个数据框中。使用 pandas 库中的 concat 方法来实现。以下是示例代码:

df = pd.concat([df1, df2, df3], axis=0, ignore_index=True)

其中,参数 axis=0 表示沿着行方向进行连接,ignore_index=True 表示重新索引数据框。

  1. 遍历多个 Excel 文件并合并所有数据

我们可以使用 os 库中的 listdir 方法来获取一个目录中的所有文件名。然后,我们可以使用循环遍历目录中的所有 Excel 文件,并逐个读取其中的工作表。最后,我们将所有工作表合并到一个数据框中。

以下是示例代码:

folder_path = 'path/to/folder'
file_list = os.listdir(folder_path)

dfs = []
for file_name in file_list:
    if file_name.endswith('.xlsx'):
        file_path = folder_path + '/' + file_name
        temp_dfs = pd.read_excel(file_path, sheet_name=None)
        dfs.append(pd.concat(temp_dfs.values()))

df = pd.concat(dfs, axis=0, ignore_index=True)
总结

如此,我们就可以使用 Python 将多个 Excel 文件中的多个工作表合并到一个数据框中了。这种方法非常适用于需要批量处理多个数据表格并进行分析的场景。