Heim > Backend-Entwicklung > Python-Tutorial > Wie füge ich Daten mithilfe von Pandas an eine vorhandene Excel-Datei an, ohne sie zu überschreiben?

Wie füge ich Daten mithilfe von Pandas an eine vorhandene Excel-Datei an, ohne sie zu überschreiben?

Mary-Kate Olsen
Freigeben: 2024-12-27 09:37:10
Original
632 Leute haben es durchsucht

How to Append Data to an Existing Excel File Using Pandas Without Overwriting?

Mit Pandas in vorhandene Excel-Dateien schreiben, ohne Daten zu überschreiben

Beim Hinzufügen neuer Daten zu einer vorhandenen Excel-Datei mit Pandas ist das Standardverhalten damit die neuen Daten alle vorhandenen Inhalte überschreiben. Dies kann problematisch sein, wenn Sie die vorhandenen Daten auf anderen Blättern beibehalten möchten.

Das Problem

Bedenken Sie den folgenden Code:

import pandas

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

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

writer.save()
Nach dem Login kopieren

Wenn dieser Code ausgeführt wird, werden die Daten in data_filtered zu einem neuen Blatt mit dem Namen „Main“ in der Excel-Datei Masterfile.xlsx hinzugefügt. Es werden jedoch auch alle anderen Blätter in der Datei gelöscht.

Die Lösung

Um das Überschreiben vorhandener Daten zu vermeiden, können Sie die Engine verwenden ='openpyxl'-Option in ExcelWriter. Dadurch können Sie auf das zugrunde liegende openpyxl-Objekt zugreifen, was mehr Kontrolle über den Prozess gibt.

So ändern Sie den obigen Code, um ihn an eine vorhandene Excel-Datei anzuhängen, ohne ihn zu überschreiben:

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()
Nach dem Login kopieren

Von Indem wir write.sheets explizit auf ein Wörterbuch bestehender Blätter festlegen, stellen wir sicher, dass ExcelWriter die vorhandenen Blätter kennt und sie nicht überschreibt.

Das obige ist der detaillierte Inhalt vonWie füge ich Daten mithilfe von Pandas an eine vorhandene Excel-Datei an, ohne sie zu überschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage