python将df按两列分组后,分组的两个列名分别为表名和sheet名,如果表名和分组表名相同,批量写入原始excel中倒数第2个新SHEET
时间: 2023-06-12 08:02:26 浏览: 90
解决Python pandas df 写入excel 出现的问题
好的,我理解您的问题。您可以使用pandas库中的groupby函数来按照两个列进行分组,并且使用循环结构来写入excel的新sheet中。
具体的代码如下所示:
```
import pandas as pd
import openpyxl
from openpyxl import Workbook
# 读取原始excel文件
df = pd.read_excel('input.xlsx')
# 按照表名和sheet名进行分组
grouped = df.groupby(['表名', 'sheet名'])
# 创建新的excel文件
wb = Workbook()
ws = wb.active
# 循环对每个分组进行写入操作
for name, group in grouped:
# 如果表名和分组表名相同,则写入到倒数第2个新sheet中
if name[0] == name[1]:
ws = wb.create_sheet(index=-1)
ws.title = name[0]
for row in group.iterrows():
ws.append(row[1].tolist())
# 保存excel文件
wb.save('output.xlsx')
```
希望我的回答可以帮助您解决问题。如果您有任何其他问题,请随时提出。
阅读全文