CSV-Dateien in Python verarbeiten
CSV (Comma Separated Values) ist eines der am weitesten verbreiteten Formate zur Speicherung von Tabellendaten. Es wird in vielen Bereichen eingesetzt – vom Export aus Excel-Tabellen bis zum Datenaustausch zwischen Webdiensten und Datenbanken.
Python bietet leistungsstarke Werkzeuge für die Arbeit mit CSV-Dateien. Du kannst das integrierte Modul csv oder die mächtige Bibliothek pandas für die Datenanalyse nutzen. Dieser Artikel zeigt Dir, wie Du CSV-Dateien liest, schreibst, Daten verarbeitest, Fehler vermeidest und die Performance bei großen Dateien optimierst.
Grundlagen des CSV-Formats
Aufbau einer CSV-Datei
CSV ist ein einfaches Textformat. Jede Zeile der Datei enthält einen Datensatz. Die Werte in einem Datensatz werden durch spezielle Trennzeichen getrennt. Standardmäßig wird ein Komma verwendet, aber auch Semikolon, Tabulator oder senkrechter Strich sind möglich.
Der Inhalt einer typischen CSV-Datei sieht so aus:
Name,Alter,Stadt
Anna,25,Berlin
Jan,30,München
Vorteile des CSV-Formats
Das CSV-Format bietet mehrere wichtige Vorteile:
- Einfache Struktur und gute Lesbarkeit
- Unterstützung durch die meisten Programme und Programmiersprachen
- Geringe Dateigröße im Vergleich zu anderen Formaten
- Bearbeitung in Texteditoren möglich
- Universalität für den Datenaustausch zwischen verschiedenen Systemen
Arbeiten mit CSV über das csv-Modul
Grundlagen des CSV-Lesens
Das Standardmodul csv in Python eignet sich für grundlegende CSV-Operationen. Zum einfachen Einlesen von Daten verwendest Du diesen Ansatz:
import csv
with open("daten.csv", newline='', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
print(row)
Ergebnis der Ausführung:
['Name', 'Alter', 'Stadt']
['Anna', '25', 'Berlin']
['Jan', '30', 'München']
Lesen mit Kopfzeilen
Für die komfortable Arbeit mit benannten Spalten verwendest Du csv.DictReader:
with open("daten.csv", encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
print(row["Name"], row["Stadt"])
Diese Methode erstellt automatisch Wörterbücher für jede Zeile. Die Schlüssel sind die Werte aus der ersten Zeile der Datei.
Daten in eine CSV-Datei schreiben
Einfaches Schreiben von Zeilen
Die grundlegende Methode zum Schreiben von Daten verwendet csv.writer:
with open("ausgabe.csv", mode='w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow(["Name", "Alter"])
writer.writerow(["Olaf", 35])
Schreiben von Dictionary-Daten
Für strukturierte Daten ist csv.DictWriter praktisch:
daten = [
{"Name": "Maria", "Alter": 28},
{"Name": "Alex", "Alter": 40},
]
with open("personen.csv", "w", newline='', encoding='utf-8') as f:
writer = csv.DictWriter(f, fieldnames=["Name", "Alter"])
writer.writeheader()
writer.writerows(daten)
Anpassung von Lese- und Schreibparametern
Das csv-Modul erlaubt die Anpassung verschiedener Parameter:
delimiter: Angabe des Feldtrennzeichensquotechar: Zeichen zum Einschließen von Werten in Anführungszeichenskipinitialspace: Überspringen von Leerzeichen nach dem Trennzeichenlineterminator: Zeichen für das Zeilenende
Arbeiten mit CSV in der pandas-Bibliothek
Installation und Import von pandas
Die Bibliothek pandas bietet noch leistungsfähigere Möglichkeiten für die Arbeit mit CSV-Dateien:
pip install pandas
CSV-Dateien mit pandas einlesen
Die Hauptmethode zum Einlesen von CSV-Dateien:
Blogs
Beste IDEs und Tools für die Java-Entwicklung im Jahr 2024
Algorithmen und Datenstrukturen in Go: Ein praktischer Leitfaden
Kotlin und PostgreSQL: Backend schneller schreiben, als Sie denken
Buchempfehlungen
Lesen Sie auch
Integration von WebAssembly und PHP: Ein praktischer Leitfaden
Docker und PHP: Containerisierung von Anwendungen für Entwickler
Beste IDEs und Tools für die JavaScript-Entwicklung im Jahr 2024
Arbeiten mit dem Dateisystem in C++: Vollständiger Leitfaden für Anfänger
Const vs Readonly in C#: Was wählen und worin liegt der Unterschied?