How to write to an existing excel file without overwriting data (using pandas)?

I use pandas to write to excel file in the following fashion:

    import pandas

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

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

    writer.save()

Masterfile.xlsx already consists of number of different tabs.

Pandas correctly writes to "Main" sheet, unfortunately it also deletes all other tabs.

Pandas docs says it uses openpyxl for xlsx files. Quick look through the code in ExcelWriter gives a clue that something like this might work out:

    import pandas
    from openpyxl import load_workbook

    book = load_workbook('Masterfile.xlsx')
    writer = pandas.ExcelWriter('Masterfile.xlsx', engine='openpyxl') 
    writer.book = book
    writer.sheets = dict((ws.title, ws) for ws in book.worksheets)

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

    writer.save()

From: stackoverflow.com/q/20219254

Back to homepage or read more recommendations: