Pandas read_csv(): So lesen Sie CSV-Dateien in Python ein
Python Pandas read_csv()
ist eine der am häufigsten genutzten Methoden, um Daten aus CSV-Dateien zu laden und in einem DataFrame-Format zu sichern. CSV-Dateien (Comma-separated Values) sind ein weit verbreitetes Format zur Speicherung tabellarischer Daten, das von vielen Programmen unterstützt wird.
- Flexibel: Hosting, das jedem Website-Traffic standhält
- Verlässlich: Inklusive 24/7-Support und persönlicher Beratung
- Sicher: Kostenloses SSL-Zertifikat, DDoS-Schutz und Backups
Syntax von Python Pandas read_csv()
Die Funktion pandas.read_csv()
erstellt einen Pandas DataFrame basierend auf einer CSV-Datei. Sie kann eine Vielzahl verschiedener Parameter entgegennehmen, die das Verhalten der Funktion spezifizieren. Im Folgenden gehen wir der Übersicht halber nur auf die wichtigsten und am häufigsten benötigten Argumente ein. Eine ausführliche Auflistung finden Sie in der Pandas-Dokumentation.
Die grundlegende Syntax der Funktion ist einfach und sieht folgendermaßen aus:
import pandas as pd
df = pd.read_csv(filepath_or_buffer, sep=',', header='infer', names=None, index_col=None, usecols=None, dtype=None, ...)
pythonRelevante Parameter
Im Folgenden finden Sie eine Übersicht über die wichtigsten Parameter:
Parameter | Bedeutung | Default-Wert |
---|---|---|
filepath_or_buffer
|
Dies ist ein Python-String (Pfad zur Datei) oder ein Dateipuffer wie eine URL. | |
sep
|
Hiermit wird das Trennzeichen zwischen den Werten angegeben. | ,
|
header
|
Gibt an, welche Zeile als Header verwendet wird. | infer (erste Zeile)
|
names
|
Wenn header=None gesetzt ist, können Sie mit names eine Python-Liste von Spaltennamen angeben.
|
|
index_col
|
Legt fest, welche Spalte als Index verwendet wird. | None
|
usecols
|
Mit diesem Parameter können Sie die Spalten auswählen, die Sie in den DataFrame laden möchten. | None
|
dtype
|
Gibt den Datentyp der Spalten an. | None
|
Schritt-für-Schritt-Anleitung zum Zugriff auf CSV-Dateien
Mithilfe von pandas.read_csv()
lassen sich Daten aus CSV-Dateien in nur wenigen Schritten in Python übertragen.
In den Beispielen soll mit einer CSV-Datei nach folgendem Muster gearbeitet werden:
1,Max Mustermann,35,Berlin,50000
2,Anna Müller,29,Hamburg,62000
3,Peter Schmidt,41,München,58000
4,Lisa Meier,33,Köln,49000
5,Tom Becker,28,Frankfurt,52000
Schritt 1: Pandas importieren
In einem ersten Schritt sollten Sie die Pandas-Bibliothek in Ihr Python-Skript importieren.
import pandas as pd
pythonSchritt 2: CSV-Datei laden
Nun können Sie Ihre CSV-Datei mit der Python-Pandas-read_csv()
-Funktion laden. Hierzu übergeben Sie der Funktion einfach den Dateipfad. Im folgenden Codebeispiel betrachten wir eine Datei namens daten.csv, die im selben Verzeichnis wie das Skript gespeichert ist:
df = pd.read_csv('daten.csv')
pythonDurch den Code wird die Datei in einem DataFrame-Objekt df
gesichert, mit dem nun weitergearbeitet werden kann. Pandas interpretiert automatisch die erste Zeile als Spaltenüberschriften, wenn nichts anderes angegeben wird.
Schritt 3: CSV-Datei anzeigen
Um sicherzustellen, dass die Datei korrekt geladen wurde, ist es sinnvoll, sich die ersten Zeilen des DataFrames anzusehen. Hierfür kann die Funktion DataFrame.head()
genutzt werden. Sie zeigt standardmäßig die ersten fünf Zeilen des DataFrames an. So erhält man einen schnellen Überblick über die Struktur der Daten:
print(df.head())
pythonDie Ausgabe sieht wie folgt aus:
0 1 Max Mustermann 35 Berlin 50000
1 2 Anna Müller 29 Hamburg 62000
2 3 Peter Schmidt 41 München 58000
3 4 Lisa Meier 33 Köln 49000
4 5 Tom Becker 28 Frankfurt 52000
Schritt 4: Spaltennamen ändern (optional)
Wenn Ihre CSV-Datei keine Header-Zeile hat, können Sie die Spaltennamen manuell definieren:
df = pd.read_csv('daten.csv', header=None, names=['Spalte1', 'Spalte2', 'Spalte3', 'Spalte4', 'Spalte5'])
pythonIn diesem Beispiel wurden die Spalten manuell mit Spalte1, Spalte2, Spalte3, Spalte4 und Spalte5 benannt. Der Code liefert als Resultat:
Spalte1 Spalte2 Spalte3 Spalte4 Spalte5
0 1 Max Mustermann 35 Berlin 50000
1 2 Anna Müller 29 Hamburg 62000
2 3 Peter Schmidt 41 München 58000
3 4 Lisa Meier 33 Köln 49000
4 5 Tom Becker 28 Frankfurt 52000
Die als Beispiel genutzte CSV-Datei hatte nicht allzu viele Daten und war somit eher klein. Wenn das allerdings nicht der Fall ist und Sie eine sehr große CSV-Datei haben, sollten Sie die Datei stückweise einlesen, um Speicherprobleme zu vermeiden. Hierfür können Sie den pandas.read_csv()
-Parameter chunksize
nutzen, der angibt, wie viele Zeilen pro Iteration gelesen werden sollen. Mit einer Python-for-Loop können Sie über die Chunks iterieren.