帮我写一串代码,关于用python把指定文件夹中的excel表格的sheet,根据相同的Stkcd和Accper,横向合并在一起
时间: 2024-05-05 22:18:11 浏览: 154
好的,以下是代码:
```python
import pandas as pd
import os
# 指定文件夹路径
folder_path = 'your_folder_path'
# 获取指定路径下所有excel文件名
file_names = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 创建一个空的DataFrame,用于存放所有合并的数据
merged_data = pd.DataFrame()
# 处理每个excel文件
for file_name in file_names:
# 读取当前excel文件的每个sheet
sheets = pd.read_excel(os.path.join(folder_path, file_name), sheet_name=None)
# 处理每个sheet
for sheet_name, sheet_data in sheets.items():
# 按照Stkcd和Accper分组,并横向合并
sheet_data = sheet_data.groupby(['Stkcd', 'Accper']).apply(lambda x: pd.concat([x[col] for col in x.columns if col not in ['Stkcd', 'Accper']], axis=1))
# 如果合并后的数据非空,将其存入merged_data
if not sheet_data.empty:
# 添加文件名和sheet名到合并后的数据中,便于区分不同的数据
sheet_data['FileName'] = file_name
sheet_data['SheetName'] = sheet_name
# 将当前sheet合并到merged_data
merged_data = pd.concat([merged_data, sheet_data])
# 将结果写入一个新的Excel文件中
merged_data.to_excel('merged_data.xlsx', index=False)
```
该代码会处理指定文件夹下的所有Excel文件,并将它们的指定sheet按照Stkcd和Accper分组,并横向合并在一起。最终结果会保存到一个新的Excel文件中。请将 "your_folder_path" 替换为你要处理的 Excel 文件夹的路径。
阅读全文