[英]Append existing excel sheet with new dataframe using python pandas
[英]unable to append pandas Dataframe to existing excel sheet
我對Python / Pandas很陌生。 我有一種情況,我必須每周用新數據更新一個現有工作表。 這些“新”數據基本上是每周都會生成的原始csv文件中的經過處理的數據,我已經編寫了python代碼來生成“新”數據,該數據基本上就是我代碼中的pandas Dataframe。 現在,我想將此Dataframe對象附加到excel工作簿中的現有工作表中。 我已經在使用下面的代碼將DF工作表寫入XL工作簿到特定的工作表中。
workbook_master=openpyxl.load_workbook('C:\Claro\Pre-Sales\E2E Optimization\Transport\Transport Network Dashboard.xlsx')
writer=pandas.ExcelWriter('C:\Claro\Pre-Sales\E2E Optimization\Transport\Transport Network Dashboard.xlsx',engine='openpyxl',mode='a')
df_latency.to_excel(writer,sheet_name='Latency',startrow=workbook_master['Latency'].max_row,startcol=0,header=False,index=False)
writer.save()
writer.close()
現在的問題是當我運行代碼並打開excel文件時,代碼沒有將數據幀寫入現有工作表“ Latency”,而是創建了一個新工作表“ Latency1”並將數據幀寫入其中。 數據框的內容和位置正確,但是我不明白為什么代碼會創建一個新的工作表“ Latency1”,而不是將數據框寫入現有的工作表“ Latency”
非常感謝您的幫助。
謝謝法赫姆
默認情況下,實例化ExcelWriter
時,它將假定沒有工作表的新Empty Workbook。
因此,當您嘗試將數據寫入“延遲”時,它將創建一個新的空白工作表。 另外, openpxyl
庫在寫入“避免重復名稱”之前執行檢查(請參閱openpxyl docs:第18行 ),它以數字方式遞增工作表名稱以寫入“ Latency1”。
要解決此問題,請在創建writer
之后將現有的工作表復制到ExcelWriter.sheets
屬性中。 像這樣:
writer.sheets = dict((ws.title, ws) for ws in workbook_master.worksheets)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.