|
发表于 2023-11-23 14:48:06
|
显示全部楼层
处理Excel多个工作簿合并一个工作表,并且只合并首行的代码可以如下所示:
- import pandas as pd
- import os
- # 指定工作簿所在的文件夹路径
- folder_path = 'path_to_folder'
- # 获取文件夹中的所有Excel文件
- file_list = [file for file in os.listdir(folder_path) if file.endswith('.xlsx')]
- # 创建一个空的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[0]
-
- # 如果合并后的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 = [file for file in os.listdir(folder_path) if file.endswith('.xlsx')]
- # 创建一个空的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[1:]
-
- # 如果合并后的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官方接口),如未能正确解答您的问题,请继续追问。 |
|