[英]How to write to separate excel worksheets within the same workbook in a for loop?
[英]Write data from a df to an excel workbook that already has other worksheets
我想將數據從數據幀寫入Excel WorkBook。 該工作簿還有其他具有現有數據的工作表。 我想將數據框中的數據寫入新的工作表
當我使用
df.to_excel('name.xlsx', 'Sheet3')
其他列表(工作表)中的數據將被刪除。 如何將數據寫入現有工作簿中的另一個工作表而又不丟失現有數據?
您可以使用下面的add_xlsx_sheet
函數,該函數包含to_excel
可用的一些設置,並檢查(並刪除)具有所需名稱的workbook
sheet
在給定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)))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.