簡體   English   中英

將數據從df寫入到已經具有其他工作表的Excel工作簿中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM