Um eigene CSV-Dateien mit Python zu erstellen, stehen verschiedene Optionen zur Verfügung, darunter das `csv`-Modul und das `pandas`-Modul. In diesem Kapitel betrachten wir beide Methoden.
CSV-Modul
Das `csv`-Modul, das Teil der Python-Standardbibliothek ist, ermöglicht das einfache Schreiben von CSV-Dateien. Hier ist ein Beispiel, wie Du eine CSV-Datei mit dem `csv.writer` erstellen kannst:
import csv
daten = [
["Name", "Alter", "Stadt"],
["Alice", 30, "Berlin"],
["Bob", 25, "München"],
["Charlie", 22, "Köln"],
]
with open("personen.csv", "w", newline="") as datei:
csv_writer = csv.writer(datei)
for zeile in daten:
csv_writer.writerow(zeile)
In diesem Beispiel erstellen wir eine CSV-Datei namens `personen.csv` und schreiben die Daten Zeile für Zeile mithilfe der `writerow()`-Methode.
Pandas-Modul
Mit dem `pandas`-Modul kannst Du auch eigene CSV-Dateien erstellen. Zuerst musst Du die Daten in einen `DataFrame` konvertieren und dann die `to_csv()`-Methode verwenden, um den `DataFrame` in eine CSV-Datei zu schreiben:
import pandas as pd
daten = {
"Name": ["Alice", "Bob", "Charlie"],
"Alter": [30, 25, 22],
"Stadt": ["Berlin", "München", "Köln"],
}
df = pd.DataFrame(daten)
df.to_csv("personen.csv", index=False)
In diesem Beispiel erstellen wir einen `DataFrame` aus einem Dictionary und schreiben die Daten in eine CSV-Datei namens `personen.csv`. Der Parameter `index=False` verhindert das Schreiben des Index in die CSV-Datei.
Wenn Du die Daten in einer Liste von Dictionaries hast, kannst Du den `DataFrame` direkt aus der Liste erstellen:
daten = [
{"Name": "Alice", "Alter": 30, "Stadt": "Berlin"},
{"Name": "Bob", "Alter": 25, "Stadt": "München"},
{"Name": "Charlie", "Alter": 22, "Stadt": "Köln"},
]
df = pd.DataFrame(daten)
df.to_csv("personen.csv", index=False)
In diesem Kapitel haben wir gelernt, wie man eigene CSV-Dateien in Python erstellt, indem man das `csv`-Modul oder das `pandas`-Modul verwendet. Beide Methoden sind leistungsfähig und flexibel, sodass Du je nach Bedarf die für Dich passende Methode auswählen kannst.