データを上書きせずに既存の Excel ファイルに書き込む方法 (pandas を使用) 質問する

データを上書きせずに既存の Excel ファイルに書き込む方法 (pandas を使用) 質問する

私は次の方法でパンダを使用して Excel ファイルに書き込みます。

import pandas

writer = pandas.ExcelWriter('Masterfile.xlsx') 

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

Masterfile.xlsx にはすでにさまざまなタブが含まれています。ただし、まだ「Main」は含まれていません。

Pandas は「メイン」シートに正しく書き込みますが、残念ながら他のすべてのタブも削除します。

ベストアンサー1

Pandas のドキュメントには、xlsx ファイルには openpyxl が使用されると書かれています。コードにざっと目を通すと、ExcelWriter次のような方法がうまくいくかもしれないというヒントが得られます。

import pandas
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
writer.book = book

## ExcelWriter for some reason uses writer.sheets to access the sheet.
## If you leave it empty it will not know that sheet Main is already there
## and will create a new sheet.

writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])

writer.save()

おすすめ記事