HOWTO · Pandas

Pandas Anhängen an CSV

Dieses Tutorial demonstriert, wie man mit to_csv() im append-Modus Daten an eine bestehende CSV-Datei anfügt

Auf dieser Seite

Python Pandas ermöglicht es uns, Daten effizient zu manipulieren und zu verwalten. Wir können DataFrames erstellen und verwalten und verschiedene Operationen mit ihnen durchführen. Es erlaubt uns auch, eine externe CSV- oder Excel-Datei zu lesen, DataFrames zu importieren, mit ihnen zu arbeiten und sie wieder zu speichern. Eine interessante Funktion beim Speichern von Daten ist der append-Modus mit dem Parameter a, mit dem man Daten an eine bereits vorhandene CSV-Datei anhängen kann.

In diesem Artikel wird vorgestellt, wie man mit Pandas Daten an eine CSV-Datei anhängen kann.

import pandas as pd

df = pd.DataFrame([[6, 7, 8], [9, 12, 14], [8, 10, 6]], columns=["a", "b", "c"])

print(df)

df.to_csv(r"C:\Test\data.csv", index=False)

df2 = pd.DataFrame([[4, 1, 3], [6, 7, 2], [5, 9, 4]], columns=["a", "b", "c"])

print(df2)

df2.to_csv(r"C:\Test\data.csv", mode="a", header=False, index=False)

Ausgabe:

   a   b   c
0  6   7   8
1  9  12  14
2  8  10   6
   a  b  c
0  4  1  3
1  6  7  2
2  5  9  4

pandas an csv.png anhängen

Die gespeicherte CSV-Datei wird die beiden DataFrames mit den Daten des df2 an die ursprüngliche Datei angehängt haben.

Es gibt noch eine weitere Funktion, die wir zu diesem Code hinzufügen können. Mit nur wenigen Codezeilen können wir sicherstellen, dass die Funktion to_csv() eine Datei erstellt, wenn sie nicht existiert, und Kopfzeilen überspringt, wenn sie bereits existiert. Wir werden die Anweisung with für die Ausnahmebehandlung und open() zum Öffnen einer Datei verwenden.

import pandas as pd

df = pd.DataFrame([[6, 7, 8], [9, 12, 14], [8, 10, 6]], columns=["a", "b", "c"])

print(df)

df.to_csv(r"C:\Test\data.csv", index=False)

df2 = pd.DataFrame([[4, 1, 3], [6, 7, 2], [5, 9, 4]], columns=["a", "b", "c"])

print(df2)

with open(r"C:\Test\data.csv", mode="a") as f:
    df2.to_csv(f, header=f.tell() == 0, index=False)

Ausgabe:

   a   b   c
0  6   7   8
1  9  12  14
2  8  10   6
   a  b  c
0  4  1  3
1  6  7  2
2  5  9  4

Die Methode tell() des Dateiobjekts gibt die aktuelle Cursorposition zurück. Wenn also die Datei leer ist oder nicht existiert, ist f.tell==0 True, so dass header auf True gesetzt wird; andernfalls wird header auf False gesetzt.