Heim > Backend-Entwicklung > Python-Tutorial > Wie füge ich mit Pandas einen neuen DataFrame an eine vorhandene Excel-Tabelle in Python an?

Wie füge ich mit Pandas einen neuen DataFrame an eine vorhandene Excel-Tabelle in Python an?

Mary-Kate Olsen
Freigeben: 2024-12-02 15:22:11
Original
421 Leute haben es durchsucht

How to Append a New DataFrame to an Existing Excel Sheet in Python Using Pandas?

Vorhandene Excel-Tabelle mit neuem Datenrahmen mit Python Pandas anhängen

In diesem Artikel erfahren Sie, wie Sie einen neuen Datenrahmen an einen vorhandenen anhängen Excel-Tabelle mit Python Pandas.

Problem:

Anhängen eines neuen Datenrahmens an ein vorhandenes Excel Das Erstellen eines Arbeitsblatts mit der Funktion Pandas to_excel() überschreibt die vorhandenen Daten. Das Ziel besteht darin, die neuen Daten an das Ende des aktuellen Blatts anzuhängen und dabei den vorhandenen Inhalt beizubehalten.

Lösung:

Um dieses Problem zu beheben, können wir die folgenden Schritte nutzen:

  1. Vorhandenes laden Arbeitsmappe:

    • Verwenden Sie das openpyxl-Paket, um die vorhandene Excel-Arbeitsmappe zu laden.
    • Speichern Sie die vorhandenen Blattnamen in einer Liste.
  2. Bereiten Sie das Neue vor Datenrahmen:

    • Entfernen Sie alle unnötigen Zeilen oder Spalten aus dem neuen Datenrahmen.
  3. Erstellen Sie einen neuen Arbeitsmappen-Autor:

    • Erstellen Sie ein ExcelWriter-Objekt mit Pandas und geben Sie dabei das Vorhandene an Arbeitsmappe als Ausgabe.
    • Setzen Sie die Engine auf „openpyxl“, den Modus auf „a“ und if_sheet_exists auf „new“, wenn das vorhandene Blatt nicht existiert.
  4. Schreiben Sie den neuen Datenrahmen:

    • Schreiben Sie den neuen Datenrahmen in den neuen vom ExcelWriter erstelltes Blatt.
    • Passen Sie die Zellenformatierung nach Bedarf an.
  5. Zellen vom neuen in das vorhandene Blatt kopieren:

    • Da Pandas das direkte Anhängen nicht unterstützt, verwenden wir openpyxl, um die Zellen aus dem neuen zu kopieren Blatt zum vorhandenen Blatt, beginnend am Ende der vorhandenen Daten.
  6. Neues Blatt entfernen:

    • Entfernen Sie nach dem Kopieren der Daten das neue Blatt, das zum Schreiben der neuen erstellt wurde Datenrahmen.
  7. Speichern und schließen Sie die Arbeitsmappe:

    • Speichern Sie die Arbeitsmappe und schließen Sie sie it.

Beispiel:

import pandas as pd
import openpyxl
from openpyxl.utils import get_column_letter

# Load existing workbook
workbook = openpyxl.load_workbook("existing_excel.xlsx")
sheet_names = workbook.sheetnames

# Prepare new dataframe
new_df = pd.DataFrame({
    "Name": ["Alice", "Bob", "Carol"],
    "Age": [25, 30, 35]
})

# Create new workbook writer
with pd.ExcelWriter("existing_excel.xlsx", engine="openpyxl", mode="a", if_sheet_exists="new") as writer:
    # Write new dataframe
    new_df.to_excel(writer, sheet_name="NewData", index=False)

    # Get worksheet objects
    new_sheet = writer.sheets["NewData"]
    existing_sheet = workbook["ExistingData"]

    # Get last row in existing sheet
    last_row = existing_sheet.max_row

    # Copy cells from new sheet to existing sheet
    copy_excel_cell_range(
        src_ws=new_sheet,
        tgt_ws=existing_sheet,
        src_min_row=2,
        src_max_row=new_sheet.max_row,
        tgt_min_row=last_row + 1,
        with_style=True
    )

    # Remove temporary sheet
    workbook.remove(new_sheet)

# Save and close
workbook.save("existing_excel.xlsx")
Nach dem Login kopieren

Mit diesem Ansatz können Sie neue Daten nahtlos an eine vorhandene Excel-Tabelle anhängen, ohne den vorhandenen Inhalt zu überschreiben.

Das obige ist der detaillierte Inhalt vonWie füge ich mit Pandas einen neuen DataFrame an eine vorhandene Excel-Tabelle in Python an?. 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