Pandas Anhängen an CSV
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
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.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn