Seit 2019 im DACH-RaumSeit 2019
50+ Statistik-Experten50+ Experten
Über 1.200 Projekte1.200+ Projekte
Alle StatistikprogrammeAlle Programme
Express möglichExpress
Statistik-Ratgeber

Wie importiert man CSV- und Excel-Daten in Python?

Python · Maximilian Fuchs · 9. Juni 2026 · 9 Min. Lesezeit

CSV und Excel: Was steckt dahinter?

Für die meisten empirischen Auswertungen ist der Datenimport der erste und entscheidende Schritt. In Python erledigen Sie das in aller Regel mit der Bibliothek pandas – zwei Funktionen genügen dabei für den Großteil aller Anwendungsfälle: pd.read_csv() und pd.read_excel().

Bevor es an die konkrete Umsetzung geht, lohnt ein kurzer Blick auf das Format selbst. CSV ist zwar ein weit verbreitetes Austauschformat für Tabellendaten, aber keineswegs vollständig standardisiert – verschiedene Programme nutzen unterschiedliche Trennzeichen, Anführungszeichen oder Zeilenumbrüche, was beim Import zu unerwarteten Fehlern führen kann. Wer das weiß, ist beim Einlesen eigener Umfragedaten oder exportierter SPSS-Datensätze deutlich besser vorbereitet.

Für die Datenanalyse mit Python ist pandas das zentrale Werkzeug – und der Import ist der Ausgangspunkt jeder Analyse.

CSV-Dateien mit pandas importieren

Der einfachste Fall sieht so aus: Sie haben eine CSV-Datei auf Ihrem Rechner und möchten sie als DataFrame laden. Das gelingt mit einer einzigen Zeile:

Python
import pandas as pd

# Einfacher CSV-Import
df = pd.read_csv("daten/umfrage_ergebnisse.csv")

# Ersten Überblick verschaffen
print(df.head())
print(df.shape)
print(df.dtypes)

Mit df.head() sehen Sie die ersten fünf Zeilen, df.shape zeigt Ihnen Zeilen- und Spaltenanzahl, und df.dtypes listet auf, welche Datentypen pandas automatisch vergeben hat. Dieser kurze Kontrollblock sollte nach jedem Import zur Routine werden.

Neben lokalen Dateipfaden akzeptiert read_csv() auch direkte URLs – etwa zu Datensätzen auf GitHub, institutionellen Repositorien oder öffentlichen Datenportalen. Das ist besonders nützlich, wenn Sie mit öffentlich zugänglichen Forschungsdaten arbeiten.

Wichtige Parameter für den CSV-Import

In der Praxis sind DACH-Datensätze selten so formatiert, dass ein simpler read_csv()-Aufruf ohne weitere Anpassung funktioniert. Für reale Datensätze sind Parameter wie sep, decimal, encoding und usecols oft entscheidend – gerade weil europäische Exporte häufig Semikolons als Trennzeichen und Kommas als Dezimaltrennzeichen verwenden.

Die folgende Tabelle gibt einen Überblick über die wichtigsten Parameter:

Wichtige Parameter von pd.read_csv()
Parameter Bedeutung Typischer Wert (DACH)
sep Trennzeichen zwischen Spalten ";" (häufig bei deutschen Exporten)
decimal Dezimaltrennzeichen ","
encoding Zeichenkodierung "utf-8" oder "latin-1"
usecols Nur bestimmte Spalten laden ["alter", "geschlecht", "score"]
dtype Datentypen explizit setzen {"id": str, "alter": int}
na_values Zusätzliche fehlende Werte definieren ["99", "999", "-1"]
parse_dates Datumsspalten automatisch parsen ["datum_erhebung"]
chunksize Datei in Blöcken einlesen 1000 (bei großen Dateien)

Ein realistisches Beispiel für einen deutschen Umfrage-Export könnte so aussehen:

Python
import pandas as pd

df = pd.read_csv(
    "daten/befragung_2024.csv",
    sep=";",                          # Semikolon als Trennzeichen
    decimal=",",                      # Komma als Dezimalzeichen
    encoding="utf-8",                 # Zeichenkodierung
    usecols=["vp_id", "alter", "geschlecht", "skala_item_1", "skala_item_2"],
    dtype={"vp_id": str},             # ID immer als String laden
    na_values=["99", "999", "n.a."],  # Kodierungen für fehlende Werte
    parse_dates=["erhebungsdatum"]
)

print(df.info())
print(df.isnull().sum())

Häufiger Fehler: Wenn Sie sep=None setzen, damit pandas das Trennzeichen automatisch erkennt, funktioniert das nur mit der Python-Engine (engine="python"). Außerdem können mehrzeichen-Trennzeichen als reguläre Ausdrücke interpretiert werden und bei zitierten Feldern zu unerwarteten Ergebnissen führen. Im Zweifel: Trennzeichen lieber explizit angeben.

Zum Umgang mit fehlenden Werten nach dem Import empfiehlt sich ein separater Schritt – wie Sie dabei systematisch vorgehen, erklärt unser Beitrag zum Thema fehlende Werte in Python behandeln.

Excel-Dateien mit pandas importieren

Excel-Dateien lassen sich mit pd.read_excel() einlesen. Die Funktion unterstützt alle gängigen Formate: xlsx, xls, xlsm, xlsb sowie OpenDocument-Formate wie ods. Für den Import älterer xls-Dateien wird die Bibliothek xlrd benötigt, für moderne xlsx-Dateien openpyxl.

Installieren Sie die benötigten Abhängigkeiten vorab:

Terminal
pip install pandas openpyxl xlrd

Der grundlegende Import:

Python
import pandas as pd

# Erstes Tabellenblatt importieren (Standard)
df = pd.read_excel("daten/rohdaten_studie.xlsx")

# Bestimmtes Tabellenblatt laden
df = pd.read_excel("daten/rohdaten_studie.xlsx", sheet_name="Auswertung")

# Alle Tabellenblätter als Dictionary laden
alle_blaetter = pd.read_excel("daten/rohdaten_studie.xlsx", sheet_name=None)
print(alle_blaetter.keys())  # Namen aller Blätter anzeigen

# Einzelnes Blatt aus dem Dictionary zugreifen
df_blatt1 = alle_blaetter["Rohdaten"]

Über den Parameter sheet_name=None lässt sich ein Wörterbuch mit allen Tabellenblättern einer Excel-Datei laden – besonders praktisch, wenn Ihre Rohdaten auf mehrere Blätter verteilt sind, etwa nach Erhebungszeitpunkten oder Gruppen.

Typische Stolpersteine beim Excel-Import

Excel-Dateien sind in der Praxis selten sauber strukturiert. Häufige Probleme sind Vorzeilen mit Metadaten, zusammengeführte Zellen, gemischte Datentypen innerhalb einer Spalte oder fehlende Werte, die als leere Zellen, Bindestriche oder Zahlen wie 99 kodiert sind.

Folgende Parameter helfen dabei:

Python
import pandas as pd

df = pd.read_excel(
    "daten/rohdaten_studie.xlsx",
    sheet_name="Messzeitpunkt_1",
    header=2,            # Kopfzeile befindet sich in Zeile 3 (0-indiziert: 2)
    skiprows=[3, 4],     # Leerzeilen nach dem Header überspringen
    usecols="A:F",       # Nur Spalten A bis F laden
    nrows=250,           # Maximal 250 Datenzeilen laden
    dtype={"vp_id": str, "gruppe": str},
    na_values=["99", "-", "fehlt"],
    engine="openpyxl"    # Explizit die Engine angeben
)

print(df.head())
print(df.dtypes)

Gut zu wissen: Bei usecols können Sie entweder Excel-Spaltenbuchstaben wie "A:F" angeben oder eine Liste mit Spaltennamen wie ["vp_id", "alter", "gruppe"]. Letzteres ist reproduzierbarer, weil Spaltenreihenfolgen in Excel-Dateien sich ändern können, Namen aber meistens stabil bleiben.

Sobald Ihre Daten sauber importiert sind, können Sie direkt mit der Analyse beginnen – etwa mit einem t-Test in Python oder einer Regressionsanalyse in Python.

Das csv-Modul der Standardbibliothek

Neben pandas gibt es noch das csv-Modul aus der Python-Standardbibliothek – also ohne zusätzliche Installation. Es ist weniger komfortabel, aber vollständig ohne externe Abhängigkeiten nutzbar und bietet ein hohes Maß an Kontrolle.

Ein wesentlicher Unterschied zu pandas: Das csv-Modul gibt Zeilen standardmäßig als Listen von Strings zurück und führt keine automatische Typkonvertierung durch. Wer also Zahlen addieren möchte, muss sie selbst mit int() oder float() umwandeln.

Python
import csv

# Einfaches Einlesen mit DictReader (spaltenbasiert)
with open("daten/umfrage_ergebnisse.csv", newline="", encoding="utf-8") as f:
    reader = csv.DictReader(f, delimiter=";")
    for zeile in reader:
        print(zeile["alter"], zeile["score"])  # Werte sind noch Strings!

Für statistische Auswertungen in Abschlussarbeiten ist pandas in aller Regel die bessere Wahl – das csv-Modul eignet sich eher für Preprocessing-Skripte, bei denen minimale Abhängigkeiten wichtig sind.

Einen ausführlichen Überblick darüber, welche Python-Bibliotheken für welche Analyseaufgaben gedacht sind, bietet unser Beitrag zu den Python-Tools für die Datenanalyse.

Praxistipps für empirische Abschlussarbeiten

Der Datenimport ist mehr als ein technisches Detail – er ist der erste Schritt einer reproduzierbaren Analyse. Wer diesen Schritt sorgfältig dokumentiert, vermeidet spätere Fehler und kann die Auswertung jederzeit nachvollziehen.

Checkliste: Sauberer Datenimport in Python

  • Trennzeichen, Dezimalzeichen und Encoding der CSV-Datei vorab prüfen (z.B. mit einem Texteditor)
  • Datentypen kritischer Spalten explizit mit dtype setzen – nie blind auf die automatische Erkennung verlassen
  • Mit usecols nur die tatsächlich benötigten Spalten laden – das spart Arbeitsspeicher und hält den DataFrame übersichtlich
  • Fehlende Werte direkt beim Import mit na_values definieren, nicht nachträglich suchen
  • Nach jedem Import: df.info(), df.isnull().sum() und df.describe() ausführen
  • Import-Code in einer separaten Zelle oder Datei halten – so lässt er sich leicht wiederholen
  • Den vollständigen Importcode in den Anhang oder Methodik-Abschnitt der Arbeit aufnehmen

Das klingt nach viel Aufwand – in der Praxis sind diese Schritte aber schnell zur Routine geworden und ersparen stundenlanges Fehlersuchen später im Analyseprozess. Die sechs Schritte der Datenanalyse zeigen, wie der Import in den Gesamtprozess eingebettet ist.

Wenn Sie Ihre Daten nach der Auswertung wieder aus Python heraus exportieren möchten – etwa als formatierte Tabelle für Ihre Abschlussarbeit – finden Sie dazu eine detaillierte Anleitung in unserem Beitrag zum Exportieren von Python-Ergebnissen für Abschlussarbeiten.

Falls Sie unsicher sind, ob Python für Ihre Auswertung das richtige Werkzeug ist oder ob eine andere Software besser passt, unterstützt Sie das Team von QuantExpert bei der methodischen Begleitung statistischer Auswertungen mit Python – von der Datenvorbereitung bis zur fertigen Ergebnisdarstellung.

Einfach erklärt: Für den Alltag gilt: CSV-Dateien aus deutschen Programmen brauchen meist sep=";" und decimal=",". Excel-Dateien funktionieren mit read_excel() und engine="openpyxl" zuverlässig. Alles andere lässt sich mit den zusätzlichen Parametern schrittweise anpassen.
Python pandas CSV importieren Excel importieren Datenimport read_csv read_excel Abschlussarbeit

Ihr persönlicher Ansprechpartner

Maximilian Fuchs, M. Sc.

Teilen Sie uns mit, wie wir Ihnen helfen können.

  • Persönlicher Ansprechpartner
  • Schnelle Rückmeldung
  • Transparente Preise
  • Schutz Ihrer Daten

Fragen? Einfach anrufen!