python将新建df按两列分组后,分组的两个列名分别为表名和sheet名,如果原始excel表名和分组表名相同,批量写入原始excel中倒数第2个新SHEET
时间: 2023-06-12 19:02:06 浏览: 68
python读取excel指定列数据并写入到新的excel方法
5星 · 资源好评率100%
可以用pandas库中的groupby方法实现该操作。具体步骤如下:
1. 读取原始Excel文件并将其转换为一个 pandas 的 DataFrame。
2. 使用 groupby 方法按照表名和sheet名进行分组。
3. 遍历每个分组,并将其写入 Excel 文件的倒数第二个新SHEET中。
下面是示例代码:
```
import pandas as pd
# 读取原始Excel文件
df = pd.read_excel('original.xlsx')
# 按照表名和sheet名进行分组
groups = df.groupby(['表名', 'sheet名'])
# 遍历每个分组,并将其写入Excel文件的倒数第二个新SHEET中
with pd.ExcelWriter('result.xlsx', engine='openpyxl', mode='a') as writer:
book = writer.book
sheet_names = book.sheetnames
sheet_index = len(sheet_names) - 1
for name, group in groups:
sheet_name = f"{name[0]}_{name[1]}"
if sheet_name in sheet_names:
sheet_names.remove(sheet_name)
group.to_excel(writer, sheet_name=sheet_name, index=False)
writer.book.worksheets = writer.book.worksheets[-1:] + writer.book.worksheets[:-1]
```
这段代码会将分组后的数据依次写入 Excel 文件的倒数第二个新SHEET中,并将新SHEET移动到表格列表的倒数第二个位置。
阅读全文