Heim > Backend-Entwicklung > Python-Tutorial > Wie füge ich mit Pandas neue Blätter zu einer vorhandenen Excel-Datei hinzu?

Wie füge ich mit Pandas neue Blätter zu einer vorhandenen Excel-Datei hinzu?

Barbara Streisand
Freigeben: 2024-11-03 07:06:30
Original
1099 Leute haben es durchsucht

How to Add New Sheets to an Existing Excel File Using Pandas?

Neue Blätter in einer vorhandenen Excel-Datei mit Pandas generieren

Beim Umgang mit Excel-Daten in Python stehen Benutzer möglicherweise vor der Herausforderung, neue Blätter in einer vorhandenen Excel-Datei zu speichern . Dieser Leitfaden bietet eine Lösung unter Verwendung der Pandas-Bibliothek und deckt die Einschränkungen der „xlsxwriter“-Engine und die Implementierung der „openpyxl“-Engine ab.

Verstehen des Problems

Im angegebenen Code wird die Der Benutzer erstellt eine Excel-Datei mit zwei Blättern, „x1“ und „x2“. Der Versuch, neue Blätter „x3“ und „x4“ hinzuzufügen, überschreibt jedoch die Originaldaten. Dies liegt daran, dass die „xlsxwriter“-Engine Daten nur in einer neuen Datei speichert oder eine vorhandene überschreibt.

Lösung mit der „openpyxl“-Engine

Um vorhandene Daten beim Hinzufügen neuer Blätter beizubehalten, verwenden Sie die „openpyxl“-Engine. Der folgende Code demonstriert diesen Ansatz:

<code class="python">import pandas as pd
import numpy as np
from openpyxl import load_workbook

path = r"C:\Users\fedel\Desktop\excelData\PhD_data.xlsx"

book = load_workbook(path)  # Load the existing Excel file
writer = pd.ExcelWriter(path, engine='openpyxl')  # Create a Pandas writer connected to the workbook
writer.book = book  # Assign the workbook to the Pandas writer

x3 = np.random.randn(100, 2)
df3 = pd.DataFrame(x3)

x4 = np.random.randn(100, 2)
df4 = pd.DataFrame(x4)

df3.to_excel(writer, sheet_name='x3')  # Write the new dataframes to the existing file
df4.to_excel(writer, sheet_name='x4')

writer.close()  # Save the changes to the file</code>
Nach dem Login kopieren

Erklärung

  1. Vorhandene Excel-Datei laden: Diese Zeile liest die vorhandene Excel-Datei mit in ein Arbeitsmappenobjekt ein die Funktion „load_workbook“.
  2. Erstellen Sie einen Pandas-Writer: Hier wird ein Pandas ExcelWriter mit dem Parameter engine='openpyxl' erstellt, der die Verwendung der Engine „openpyxl“ angibt.
  3. Weisen Sie die Arbeitsmappe dem Autor zu: Das Attribut „writer.book“ wird auf das geladene Arbeitsmappenobjekt gesetzt und verknüpft den Pandas-Autor mit der vorhandenen Datei.
  4. Neu generieren Datenrahmen: Ähnlich wie beim Originalcode werden neue Datenrahmen („x3“ und „x4“) erstellt.
  5. Neue Datenrahmen schreiben: Die neuen Datenrahmen werden in der vorhandenen Datei gespeichert Verwenden der to_excel-Methode unter Angabe der Blattnamen („x3“ und „x4“).
  6. Änderungen speichern: Abschließend werden die vom Pandas-Writer vorgenommenen Änderungen in der Excel-Datei gespeichert Aufrufen der write.close()-Methode.

WebSocket, ws und Dict

Im vorgeschlagenen Code aus dem angegebenen Link:

  • WebSocket (ws): Dies bezieht sich auf jedes Arbeitsblatt in der geladenen Arbeitsmappe.
  • ws.title: Es stellt den Namen eines bestimmten Arbeitsblatts in der Arbeitsmappe dar.
  • Dict: Der Code verwendet ein Wörterbuch, um eine Zuordnung zwischen Arbeitsblattnamen und Arbeitsblattobjekten zu erstellen. Dadurch kann der Pandas-Autor auf bestimmte Blätter in der geladenen Arbeitsmappe zugreifen.

Das obige ist der detaillierte Inhalt vonWie füge ich mit Pandas neue Blätter zu einer vorhandenen Excel-Datei hinzu?. 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