冰菲 发表于 2023-11-23 14:46:52

Python 处理Excel多个工作簿合并一个工作表,并且只合并首行

Python 处理Excel多个工作表合并一个工作表,从第二行开始合并,并且只保留唯一表头,代码如何写?

FishC_GPT 发表于 2023-11-23 14:48:06

处理Excel多个工作簿合并一个工作表,并且只合并首行的代码可以如下所示:

import pandas as pd
import os

# 指定工作簿所在的文件夹路径
folder_path = 'path_to_folder'

# 获取文件夹中的所有Excel文件
file_list =

# 创建一个空的DataFrame来存储合并后的数据
merged_data = pd.DataFrame()

# 遍历每个Excel文件
for file in file_list:
    # 读取Excel文件中的所有工作表
    sheets = pd.read_excel(os.path.join(folder_path, file), sheet_name=None)
   
    # 遍历每个工作表
    for sheet_name, df in sheets.items():
      # 只处理首行
      first_row = df.iloc
      
      # 如果合并后的DataFrame中没有表头,则将首行作为表头
      if merged_data.empty:
            merged_data = pd.DataFrame(columns=first_row.index)
      
      # 将首行数据添加到合并后的DataFrame中
      merged_data = merged_data.append(first_row, ignore_index=True)

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

处理Excel多个工作表合并一个工作表,从第二行开始合并,并且只保留唯一表头的代码可以如下所示:

import pandas as pd
import os

# 指定工作簿所在的文件夹路径
folder_path = 'path_to_folder'

# 获取文件夹中的所有Excel文件
file_list =

# 创建一个空的DataFrame来存储合并后的数据
merged_data = pd.DataFrame()

# 遍历每个Excel文件
for file in file_list:
    # 读取Excel文件中的所有工作表
    sheets = pd.read_excel(os.path.join(folder_path, file), sheet_name=None)
   
    # 遍历每个工作表
    for sheet_name, df in sheets.items():
      # 只处理从第二行开始的数据
      data = df.iloc
      
      # 如果合并后的DataFrame中没有表头,则将第一行作为表头
      if merged_data.empty:
            merged_data = pd.DataFrame(columns=df.columns)
      
      # 将数据添加到合并后的DataFrame中
      merged_data = merged_data.append(data, ignore_index=True)

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

请注意,上述代码中的`path_to_folder`应该替换为实际的文件夹路径。此外,代码中使用了pandas库来处理Excel文件,如果尚未安装该库,请使用`pip install pandas`命令进行安装。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

isdkz 发表于 2023-11-23 16:40:03

import openpyxl

# 创建一个新的工作簿
merged_workbook = openpyxl.Workbook()
merged_sheet = merged_workbook.active

# 读取要合并的工作簿
workbook_names = ['workbook1.xlsx', 'workbook2.xlsx']

for workbook_name in workbook_names:
    workbook = openpyxl.load_workbook(workbook_name)
    sheet = workbook.active

    # 复制表头
    if merged_sheet.max_row == 0:
      for row in sheet.iter_rows(min_row=1, max_row=1):
            for cell in row:
                merged_sheet = cell.value

    # 复制数据
    for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row):
      new_row =
      merged_sheet.append(new_row)

# 保存合并后的工作表
merged_workbook.save('merged_workbook.xlsx')
页: [1]
查看完整版本: Python 处理Excel多个工作簿合并一个工作表,并且只合并首行