Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich mit Pandas in eine Excel-Datei schreiben, ohne vorhandene Daten zu überschreiben?

Wie kann ich mit Pandas in eine Excel-Datei schreiben, ohne vorhandene Daten zu überschreiben?

DDD
Freigeben: 2024-12-11 11:34:11
Original
307 Leute haben es durchsucht

How Can I Use Pandas to Write to an Excel File Without Overwriting Existing Data?

Umgang mit Excel-Überschreibungen mit Pandas

Pandas bietet eine robuste Option zum Schreiben in Excel-Dateien, es tritt jedoch ein Problem auf, wenn in eine vorhandene Datei geschrieben wird, ohne deren Inhalt zu überschreiben. Standardmäßig überschreibt pandas.ExcelWriter vorhandene Daten beim Erstellen von Blättern.

Beispiel und Problem

Betrachten Sie den folgenden Code:

import pandas as pd

writer = pd.ExcelWriter('Masterfile.xlsx') 
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
Nach dem Login kopieren

In diesem Szenario lautet „Masterfile.xlsx " verfügt über bereits vorhandene Registerkarten. Wenn dieser Code ausgeführt wird, wird ein neues „Hauptblatt“ erstellt und ausgefüllt, aber alle anderen Registerkarten werden gelöscht.

Lösung

Um Datenverlust zu verhindern, verwendet Pandas die openpyxl-Bibliothek für die Arbeit mit XLSX Dateien. Hier ist eine erweiterte Version des Codes:

import pandas as pd
from openpyxl import load_workbook

book = load_workbook('Masterfile.xlsx')
writer = pd.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()
Nach dem Login kopieren

Erklärung

  • load_workbook öffnet die vorhandene Excel-Datei und weist sie der Buchvariablen zu.
  • ExcelWriter wird initialisiert mit dem Parameter engine='openpyxl', um die openpyxl-Engine zum Schreiben zu verwenden.
  • Daswriter.book Das Attribut wird auf die Buchvariable gesetzt und verknüpft den Autor mit der vorhandenen Arbeitsmappe.
  • writer.sheets wird mit einem Wörterbuch aller vorhandenen Blätter aktualisiert, um sicherzustellen, dass das „Haupt“-Blatt erkannt und beibehalten wird.
  • Die to_excel-Methode von Pandas füllt Daten für das „Hauptblatt“ aus, ohne andere zu beeinflussen.
  • writer.save schließt den Vorgang ab und behält sowohl vorhandene als auch neue bei Daten.

Das obige ist der detaillierte Inhalt vonWie kann ich mit Pandas in eine Excel-Datei schreiben, ohne vorhandene Daten 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage