Skip to content

Pandas read_csv() Tutorial: CSV-Dateien wie ein Profi importieren

Updated on

Die Funktion pandas.read_csv() gehört zu den am häufigsten genutzten Werkzeugen in der Datenanalyse. Egal, ob du kleine Datensätze oder mehrgigabytegroße Dateien importierst – zu verstehen, wie read_csv() funktioniert und wie du es optimierst, spart dir Zeit, Speicher und Debugging-Aufwand.

Dieser aktualisierte Guide für 2025 zeigt dir alles, was du brauchst, um CSV-Dateien sauber, schnell und korrekt zu laden – inklusive Best Practices für Pandas 2.0, die PyArrow-Engine, den Umgang mit Encodings, Datumsparsing und das Beheben häufiger Fehler.


⚡ Willst du sofort Diagramme aus deinem DataFrame?

PyGWalker verwandelt deinen Pandas/Polars-DataFrame in eine interaktive visuelle UI – direkt im Jupyter Notebook.

Spalten per Drag & Drop → Diagramme sofort erzeugen → Daten visuell erkunden.

Probiere es mit einer einzigen Codezeile aus:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Run in Kaggle (opens in a new tab)Run in Google Colab (opens in a new tab)⭐️ Star PyGWalker (opens in a new tab)

Was ist pandas.read_csv()?

read_csv() ist die zentrale Methode, um CSV-Dateien in ein DataFrame zu importieren – die Kerndatenstruktur in pandas. Die Funktion unterstützt:

  • eigene Trennzeichen
  • Behandlung fehlender Werte
  • automatische oder manuelle Typzuweisung
  • Datumsparsing
  • Streaming für große Dateien
  • mehrere Engines (Python, C, PyArrow)
  • Index-Erstellung „on the fly“
  • effiziente Spaltenauswahl

Pandas 2.0 hat PyArrow als schnelleren und speichereffizienteren Backend eingeführt und macht das Laden von CSV-Dateien damit noch leistungsfähiger.


Grundlegende Verwendung

import pandas as pd
 
df = pd.read_csv("your_file.csv")
df.head()

Einfach – aber in echten Projekten sind CSVs selten sauber. Als Nächstes schauen wir uns die wichtigsten Parameter an.


Häufige read_csv()-Parameter (Schnellreferenz)

ParameterBeschreibung
sepSpaltentrennzeichen (Standard ,)
usecolsNur ausgewählte Spalten laden
index_colEine Spalte als Index setzen
dtypeDatentypen manuell festlegen
parse_datesDatumsspalten automatisch parsen
na_valuesMarker für fehlende Werte anpassen
on_bad_linesMit fehlerhaften Zeilen umgehen (überspringen/warnen)
engineParser wählen: "python", "c", "pyarrow"
chunksizeGroße Dateien in gestreamten Chunks lesen
encodingEncodings behandeln (utf-8, latin-1 usw.)

1. Eine Spalte als Index setzen

Variante A – nach dem Laden:

df = df.set_index("id")

Variante B – während des Ladens:

df = pd.read_csv("file.csv", index_col="id")

2. Nur bestimmte Spalten lesen

Beschleunigt das Laden und reduziert den Speicherverbrauch:

df = pd.read_csv("file.csv", usecols=["name", "age", "score"])

3. Fehlende Werte behandeln

df = pd.read_csv("file.csv", na_values=["NA", "-", ""])

4. Datumsangaben automatisch parsen

df = pd.read_csv("sales.csv", parse_dates=["date"])

Pandas erkennt dabei das passende Datetime-Format automatisch.


5. Encoding-Fehler beheben (sehr häufig!)

df = pd.read_csv("file.csv", encoding="utf-8", errors="ignore")

Wenn UTF-8 fehlschlägt:

df = pd.read_csv("file.csv", encoding="latin-1")

6. Die PyArrow-Engine verwenden (Pandas 2.0+)

Für schnelleres Parsen und besseren Speichereinsatz:

df = pd.read_csv("file.csv", engine="pyarrow")

Kombiniert mit neuen Arrow-basierten dtypes:

df = pd.read_csv(
    "file.csv",
    engine="pyarrow",
    dtype_backend="pyarrow"
)

7. Große CSVs lesen (1GB–100GB)

Nutze Chunking:

reader = pd.read_csv("big.csv", chunksize=100_000)
 
for chunk in reader:
    process(chunk)

Oder lade nur benötigte Spalten + passende Datentypen:

df = pd.read_csv(
    "big.csv",
    usecols=["user_id", "timestamp"],
    dtype={"user_id": "int32"},
)

8. Häufige Fehler & wie du sie behebst

❌ UnicodeDecodeError

Verwende:

encoding="latin-1"

❌ ParserError: Error tokenizing data

Die Datei enthält fehlerhafte Zeilen:

pd.read_csv("file.csv", on_bad_lines="skip")

❌ MemoryError bei großen Dateien

Verwende:

  • chunksize
  • usecols
  • Arrow-Backend (dtype_backend="pyarrow")

❌ Falsches Trennzeichen

pd.read_csv("file.csv", sep=";")

Praktisches Beispiel: sauberer Import

df = pd.read_csv(
    "sales.csv",
    sep=",",
    parse_dates=["date"],
    dtype={"amount": "float64"},
    na_values=["NA", ""],
    engine="pyarrow"
)

Wann CSV sinnvoll ist – und wann nicht

CSV ist ideal für:

  • Portabilität
  • einfache Pipelines
  • kleine bis mittlere Datensätze

Vermeide CSV, wenn du brauchst:

  • hohe Geschwindigkeit
  • starke Kompression
  • strenge Schema-Konsistenz
  • komplexe Datentypen

Für großskalige Analysen ist Parquet meistens die bessere Wahl.


FAQs

Wie kann ich das Trennzeichen automatisch erkennen lassen?

pd.read_csv("file.csv", sep=None, engine="python")

Wie überspringe ich Kopfzeilen?

pd.read_csv("file.csv", skiprows=3)

Wie lade ich eine gezippte CSV-Datei?

pd.read_csv("file.csv.zip")

Fazit

pandas.read_csv() ist ein leistungsfähiges und flexibles Werkzeug, das nahezu jedes CSV-Importszenario bewältigen kann – von einfachen Dateien bis zu Datensätzen mit mehreren Gigabyte.

Wenn du die wichtigsten Parameter kennst, PyArrow in Pandas 2.0+ nutzt und Best Practices anwendest (Spaltenauswahl, Datumsparsing, Fehlerbehandlung), verbesserst du deinen Data-Loading-Workflow erheblich.


Weitere Pandas-Tutorials