0Pricing
Pandas & NumPy Academy · Lektion

CSV-Dateien einlesen

Laden Sie CSV-Dateien mit pd.read_csv, steuern Sie Trennzeichen, Kopfzeilen und Indexspalten und sehen Sie sich das Ergebnis in einer Vorschau an.

CSV-Dateien einlesen ist eine kostenlose Pandas & NumPy Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Pandas & NumPy Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum CSV das universelle Format ist

CSV (Comma-Separated Values) ist das am häufigsten verwendete Format zum Austauschen tabellarischer Daten. Es ist für Menschen lesbar, wird von jeder Datenbank, Tabellenkalkulation und jedem Analysewerkzeug unterstützt und benötigt keine Schemadefinition. pd.read_csv() ist die am häufigsten aufgerufene Pandas-Funktion in der Datenanalyse, da praktisch jeder öffentliche Datensatz, API-Export oder Datenbank-Dump als CSV verfügbar ist.

import pandas as pd

# Read a CSV file from disk
df = pd.read_csv('data/sales.csv')
print(df.shape)
print(df.head())

Einfacher read_csv()-Aufruf

Das einzige erforderliche Argument ist der Dateipfad (als String oder Path-Objekt). Standardmäßig geht Pandas davon aus, dass die erste Zeile die Kopfzeile (Spaltennamen) ist, das Trennzeichen ein Komma ist und die Werte passenden Dtypes zugeordnet werden können. Der resultierende DataFrame erhält einen standardmäßigen ganzzahligen RangeIndex. Rufen Sie direkt nach dem Laden immer df.info() auf, um Probleme bei der Typbestimmung zu erkennen.

import pandas as pd

df = pd.read_csv('products.csv')

# Equivalent with explicit defaults:
df = pd.read_csv('products.csv',
                 sep=',',
                 header=0,
                 index_col=None)

Das Trennzeichen festlegen

Verwenden Sie den Parameter sep=, um ein anderes Trennzeichen als ein Komma anzugeben. Tabulatorgetrennte Dateien (TSV) verwenden sep='\t'. Einige europäische Exporte verwenden Semikolons als Trennzeichen (sep=';'), da Kommas als Dezimaltrennzeichen dienen. Übergeben Sie sep=None, engine='python', damit Pandas das Trennzeichen automatisch anhand des Dateiinhalts erkennt.

import pandas as pd

# Tab-separated file
df_tsv = pd.read_csv('data.tsv', sep='\t')

# Semicolon-separated (common in Europe)
df_semi = pd.read_csv('data.csv', sep=';')

# Auto-detect separator
df_auto = pd.read_csv('data.txt', sep=None, engine='python')

Kopfzeile und skiprows

Wenn eine CSV-Datei keine Kopfzeile enthält, setzen Sie header=None. Pandas weist dann ganzzahlige Spaltennamen zu (0, 1, 2, ...). Mit names=['a', 'b', 'c'] können Sie eigene Namen angeben. Verwenden Sie skiprows=n, um die ersten n Zeilen zu überspringen (etwa Metadaten oder Kommentare am Dateianfang). skiprows akzeptiert auch eine Liste bestimmter zu überspringender Zeilennummern.

import pandas as pd

# CSV with no header
df = pd.read_csv('noheader.csv', header=None,
                 names=['id', 'value', 'category'])

# Skip first 3 rows (e.g., metadata or comments)
df = pd.read_csv('report.csv', skiprows=3)

Die Indexspalte festlegen

index_col= legt fest, welche Spalte als Zeilenindex verwendet werden soll. Übergeben Sie einen Spaltennamen oder eine ganzzahlige Position. Ein aussagekräftiger Index (z. B. eine Datumsspalte oder eine eindeutige ID) ermöglicht den schnellen labelbasierten Zugriff mit .loc und ist Voraussetzung für Zeitreihenoperationen. Übergeben Sie eine Liste für einen MultiIndex.

import pandas as pd

# Use 'date' column as row index
df = pd.read_csv('timeseries.csv', index_col='date', parse_dates=True)
print(df.index.dtype)  # datetime64[ns]

# Equivalent with column position
df2 = pd.read_csv('timeseries.csv', index_col=0, parse_dates=True)

Datumsangaben beim Laden analysieren

parse_dates=True weist Pandas an, zu versuchen, den Index in datetime umzuwandeln. Übergeben Sie eine Liste von Spaltennamen an parse_dates=['col1', 'col2'], um bestimmte Spalten außerhalb des Index als Datumsangaben zu analysieren. Pandas versucht automatisch, gängige Formate zu erkennen; verwenden Sie für ungewöhnliche Formate date_format=. Durch das Analysieren der Datumsangaben beim Laden vermeiden Sie später wiederholte Aufrufe von pd.to_datetime().

import pandas as pd

# Parse 'order_date' column as datetime
df = pd.read_csv('orders.csv',
                 parse_dates=['order_date'])
print(df['order_date'].dtype)  # datetime64[ns]

Spalten mit usecols auswählen

usecols=['col1', 'col2'] lädt nur die angegebenen Spalten und ignoriert alle anderen. Das ist für große CSV-Dateien entscheidend – es ist nicht nötig, eine Datei mit 200 Spalten einzulesen, wenn Sie nur 5 Spalten benötigen. Dadurch werden sowohl die E/A-Zeit als auch der Speicherverbrauch deutlich reduziert. Übergeben Sie eine aufrufbare Funktion, um Spalten anhand eines Namensmusters auszuwählen.

import pandas as pd

# Load only 3 of potentially many columns
df = pd.read_csv('big_file.csv',
                 usecols=['user_id', 'event', 'timestamp'])
print(df.columns.tolist())  # ['user_id', 'event', 'timestamp']

Datentypen beim Laden steuern

Pandas leitet Datentypen automatisch her, aber diese Herleitung kann falsch sein – eine ID-Spalte mit ausschließlich numerischen Zeichenfolgen wird zu int64, oder eine Preisspalte mit fehlenden Werten wird unerwartet zu float64. Verwenden Sie dtype={'col': str}, um Datentypen zu erzwingen. Das ist außerdem effizienter: Durch die vorherige Angabe der Datentypen entfällt der Herleitungsschritt, wodurch das Laden großer Dateien um 20–30 % beschleunigt werden kann.

import pandas as pd

df = pd.read_csv('orders.csv', dtype={
    'order_id': str,      # keep as string (not int)
    'price': float,
    'quantity': 'int32'   # use smaller int
})

Fehlende Werte beim Laden behandeln

Standardmäßig erkennt Pandas viele Darstellungen fehlender Werte: leere Zellen, „NA“, „NaN“, „N/A“, „null“ usw. Verwenden Sie na_values=['?', '-', 'missing'], um benutzerdefinierte Platzhalter hinzuzufügen. Mit keep_default_na=False deaktivieren Sie die integrierte Liste und behandeln nur die von Ihnen angegebenen Werte als fehlend. So verhindern Sie, dass gültige Zeichenfolgenwerte wie „NA“ (ein Akronym) versehentlich als NaN behandelt werden.

import pandas as pd

df = pd.read_csv('survey.csv',
                 na_values=['?', '', 'N/A', 'none'])
print(df.isnull().sum())

nrows und chunksize für große Dateien

nrows=100 lädt nur die ersten 100 Zeilen – ideal für eine schnelle Überprüfung des Schemas einer sehr großen Datei. chunksize=10000 gibt einen TextFileReader-Iterator zurück, der jeweils DataFrames mit 10000 Zeilen liefert. Dadurch können Dateien blockweise verarbeitet werden, die nicht in den Arbeitsspeicher passen. Das blockweise Einlesen wird in der weiterführenden Lektion zur Performance ausführlich behandelt.

import pandas as pd

# Quick peek at a large file
header_df = pd.read_csv('huge.csv', nrows=5)
print(header_df.dtypes)

# Chunked reading
for chunk in pd.read_csv('huge.csv', chunksize=50000):
    print(chunk.shape)  # process each chunk

Häufige Stolperfallen bei read_csv

Achten Sie auf diese häufigen Probleme: Codierungsfehler (verwenden Sie encoding='utf-8' oder 'latin-1'), Leerzeichen am Anfang von Spaltennamen (verwenden Sie skipinitialspace=True), Tausendertrennzeichen in Zahlen (verwenden Sie thousands=',') und Dezimalkommas in europäischen Zahlen (verwenden Sie decimal=',' und sep=';'). Wenn diese Einstellungen fehlen, werden numerische Spalten stillschweigend in Objekte umgewandelt.

import pandas as pd

# European format: semicolon sep, comma decimal, UTF-8
df = pd.read_csv('euro_data.csv',
                 sep=';',
                 decimal=',',
                 thousands='.',
                 encoding='utf-8',
                 skipinitialspace=True)

Kurztest

Testen Sie Ihr Verständnis des Einlesens von CSV-Dateien mit Pandas aus dieser Lektion.

Zusammenfassung der Lektion

In dieser Lektion haben Sie gelernt: pd.read_csv() ist die zentrale Funktion zum Laden tabellarischer Daten und bietet zahlreiche Konfigurationsparameter, sep, header, index_col und parse_dates steuern, wie die Datei interpretiert wird und usecols und dtype verbessern bei großen Dateien die Performance und die Typsicherheit. Als Nächstes lesen Sie Excel- und JSON-Dateien ein, die jeweils eigene formatspezifische Parameter besitzen.

Häufig gestellte Fragen

Ist die Lektion „CSV-Dateien einlesen“ kostenlos?

Ja — der vollständige Text von „CSV-Dateien einlesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Pandas & NumPy Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Pandas & NumPy Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „CSV-Dateien einlesen“?

Laden Sie CSV-Dateien mit pd.read_csv, steuern Sie Trennzeichen, Kopfzeilen und Indexspalten und sehen Sie sich das Ergebnis in einer Vorschau an. Du übst Pandas & NumPy Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Pandas & NumPy Academy zu starten?

Keine Vorkenntnisse erforderlich. Pandas & NumPy Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „CSV-Dateien einlesen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Pandas & NumPy Academy-Lektion Code schreiben und ausführen?

Ja. Jede Pandas & NumPy Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. CSV-Dateien einlesen
  2. Excel- und JSON-Dateien einlesen
  3. DataFrames in Dateien schreiben
  4. Aus URLs und StringIO lesen
← Zurück zu Pandas & NumPy Academy