将数据从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)))