将多个Excel工作表合并到一个Pandas数据框中

  • Post category:Python

将多个Excel工作表合并到一个Pandas数据框中可以分为三个步骤:读取Excel文件、合并数据、输出到文件。

读取Excel文件

使用Pandas的read_excel函数可以读取一个或多个Excel文件,同时也支持读取Excel文件中的具体工作表。以下是读取单个Excel文件中所有工作表的示例代码:

import pandas as pd

# 读取Excel文件中的所有工作表
file_path = 'data.xlsx'
sheets = pd.read_excel(file_path, sheet_name=None)

read_excel函数的sheet_name参数可以选择读取指定的工作表,例如:

# 读取Excel文件中的特定工作表
file_path = 'data.xlsx'
sheet_name = 'Sheet1'
data = pd.read_excel(file_path, sheet_name=sheet_name)

合并数据

读取Excel文件后,我们需要将读取到的数据合并到一个数据框中。可以使用Pandas的concat函数将多个数据框沿着指定的轴合并,例如:

import pandas as pd

# 读取Excel文件中的所有工作表
file_path = 'data.xlsx'
sheets = pd.read_excel(file_path, sheet_name=None)

# 将所有工作表的数据合并到一个数据框中
data = pd.concat(sheets.values(), ignore_index=True)

concat函数的参数说明:

  • sheets.values():获取读取到的所有工作表的值作为一个列表。
  • ignore_index=True:合并后的数据框重新索引,忽略原来的行索引。

输出到文件

最后,我们可以使用Pandas的to_excel函数将合并后的数据输出到一个Excel文件中。例如:

import pandas as pd

# 输出到Excel文件
output_path = 'merged.xlsx'
data.to_excel(output_path, index=False)

to_excel函数的参数说明:

  • output_path:输出文件的路径和文件名。
  • index=False:不输出行索引到Excel文件中。

完整的示例代码:

import pandas as pd

# 读取Excel文件中的所有工作表
file_path = 'data.xlsx'
sheets = pd.read_excel(file_path, sheet_name=None)

# 将所有工作表的数据合并到一个数据框中
data = pd.concat(sheets.values(), ignore_index=True)

# 输出到Excel文件
output_path = 'merged.xlsx'
data.to_excel(output_path, index=False)

此时,我们就将多个Excel工作表合并到一个Pandas数据框中,并将合并后的数据输出到一个Excel文件中。