将数据从df写入已有其他工作表的excel工作簿

我想从数据框写入数据到Excel工作簿。 该工作簿具有其他工作表与现有的数据。 我想从数据框中写入数据到一个新的工作表

当我使用

df.to_excel('name.xlsx', 'Sheet3')

来自其他清单(工作表)的数据将被删除。 如何将数据写入现有工作簿中的其他工作表而不丢失现有数据?

您可以使用下面的add_xlsx_sheet函数,其中包括一些可用于to_excel设置,并检查(并删除)在给定workbook存在具有所需名称的workbook

 from openpyxl import load_workbook import pandas as pd def add_xlsx_sheet(df, sheet_name='sheet', index=True, digits=2, path=None): """Save pd.DataFrame to new excel worksheet in existing .xlsx workbook :param df: pd.DataFrame :param sheet_name: :param index: bool :param digits: int number of digits for float formatting :param path: path to existing workbook of type .xlsx """ book = load_workbook(path) writer = pd.ExcelWriter(path, engine='openpyxl') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) df.to_excel(excel_writer=writer, sheet_name=sheet_name, startrow=1, startcol=1, float_format='%.{}f'.format(digits), index=index) writer.save() 

.groupby()用法是:

 df.groupby('col_name').apply(lambda x: add_xlsx_sheet(x, x.name, path='{}.xlsx'.format(x.name)))