用python将新建df按两列分组后,分组的两个列名分别为表名和sheet名,批量写入现在excel中倒数第2个新SHEET
时间: 2023-06-12 09:01:55 浏览: 127
Python使用Excel将数据写入多个sheet
您好!感谢您的提问。根据您的要求,可以通过以下代码实现:
```python
# 导入需要使用的库
import pandas as pd
import openpyxl
# 定义要分组的两个列名
group_cols = ['表名', 'sheet名']
# 读取要写入的数据集
new_df = pd.read_csv('new_data.csv')
# 按照指定列名进行分组
grouped = new_df.groupby(group_cols)
# 获取现有excel文件
workbook = openpyxl.load_workbook('example.xlsx')
# 在最后一个sheet的前面添加新sheet
last_sheet = workbook.sheetnames[-2] # 获取倒数第2个sheet的名字
new_sheet = workbook.create_sheet('新的Sheet', -1)
# 将每组数据逐行写入新的sheet中
for name, group in grouped:
for row in group.itertuples(index=False):
new_sheet.append(list(row))
# 保存excel文件
workbook.save('example.xlsx')
```
这个代码块会读取名为"new_data.csv"的CSV文件,按照"表名"和"sheet名"这两列进行分组,并将每组数据逐行写入到现有的Excel文件(名为"example.xlsx")的倒数第2个sheet之前的新sheet中。请注意,在运行代码时,需要将分组的两个列名修改为您实际使用的列名。谢谢!
阅读全文