有5个excel表,每个表有6列。用python把这5个表合成1个表。

时间:2024-05-08 13:54:28

要将五个Excel表格合并成一个表格,我们可以使用pandas库,它提供了一个简单且强大的方式来处理和分析数据。下面是一个步骤说明和示例代码:

步骤:

  1. 安装pandas和openpyxl(如果你还没有安装的话):
pip install pandas openpyxl

openpyxl是pandas用于读取和写入Excel文件的一个依赖。 2. **使用pandas读取每个Excel表格**。 3. **将每个表格的数据添加到一个列表中**。 4. **使用pd.concat()`函数将所有表格的数据合并成一个DataFrame**。
5. 将合并后的DataFrame写入一个新的Excel文件

示例代码:

import pandas as pd

# 假设你的Excel文件名为file1.xlsx, file2.xlsx, ..., file5.xlsx,并且都在同一个目录下
file_names = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx', 'file4.xlsx', 'file5.xlsx']

# 创建一个空的列表来存储所有的DataFrame
all_data = []

# 循环读取每个Excel文件
for file_name in file_names:
    # 使用pandas读取Excel文件(这里假设每个表格只有一个sheet)
    df = pd.read_excel(file_name, engine='openpyxl')
    # 将DataFrame添加到列表中
    all_data.append(df)

# 使用pd.concat()合并所有的DataFrame
combined_df = pd.concat(all_data, ignore_index=True)

# 将合并后的数据写入新的Excel文件
combined_df.to_excel('combined_file.xlsx', index=False, engine='openpyxl')

注意

  • 如果你的Excel文件在不同的工作表(sheet)中有数据,你需要指定sheet_name参数来读取正确的sheet。
  • 如果你的Excel文件有标题行,pandas默认会将其视为列名。如果某个表格没有标题行或者标题行在不同的位置,你可能需要手动处理这些情况。
  • pd.concat()函数中,ignore_index=True参数用于重置索引,这样每个新添加的DataFrame的索引都会从0开始,而不是基于前一个DataFrame的索引继续。如果你希望保留原来的索引,可以去掉这个参数。
  • to_excel()函数中,index=False参数用于防止将DataFrame的索引写入Excel文件。如果你希望将索引写入文件,可以去掉这个参数。