Die Python-Pandas-Funktion DataFrame.iterrows() hilft dir dabei, durch die Zeilen eines Pandas Da­ta­Frames zu iterieren. Du erhältst pro Zeile ein Python Tuple, das aus dem Index und einer Series mit den Zei­len­da­ten besteht.

Syntax von Pandas iterrows()

Die Anwendung von Pandas DataFrame.iterrows() ist un­kom­pli­ziert, da die Funktion keine Parameter benötigt:

df.iterrows()
python

Im Beispiel oben steht df für den DataFrame, den du durch­lau­fen möchtest.

Anwendung der Pandas-iterrows()-Funktion

Nutze die Funktion DataFrame.iterrows() immer dann, wenn du Daten zei­len­wei­se be­ar­bei­ten willst. Meistens geschieht dies in Kom­bi­na­ti­on mit Python-for-Loops.

Werte einer Spalte addieren

Schauen wir uns einen DataFrame mit den Spalten Name, Alter und Punktzahl an:

import pandas as pd
# Beispiel-DataFrame erstellen
data = {'Name': ['Anna', 'Ben', 'Clara'],
    'Alter': [23, 35, 29],
    'Punktzahl': [88, 92, 85]}
df = pd.DataFrame(data)
print(df)
python

Dieser Code erzeugt folgenden DataFrame:

Name  Alter  Punktzahl
0   Anna     23         88
1    Ben     35         92
2  Clara     29         85

Um die Summe der Punkt­zah­len zu ermitteln, kannst du Pandas DataFrame.iterrows() verwenden:

# Summe der Punktzahlen berechnen
total_score = 0
for index, row in df.iterrows():
    total_score += row['Punktzahl']
print(f"Die Gesamtsumme der Punktzahlen beträgt: {total_score}")
python

Hier nutzt du die Pandas-iterrows()-Funktion, um durch die Zeilen zu gehen und die Werte der Spalte Punktzahl Schritt für Schritt zu addieren. So sieht das Resultat aus:

Die Gesamtsumme der Punktzahlen beträgt: 265
Hinweis

Achte bei der Arbeit mit Pandas iterrows() darauf, die Daten während der Iteration nicht direkt zu ändern. Das führt oft nicht zum ge­wünsch­ten Ergebnis und kann Fehler ver­ur­sa­chen.

Zeilen nach Be­din­gun­gen be­ar­bei­ten

Mit iterrows() kannst du auch Be­din­gun­gen auf einzelne Zeilen anwenden. An­ge­nom­men, du möchtest aus dem DataFrame alle Namen her­aus­fil­tern, die über 30 Jahre alt sind:

# Namen von Personen abrufen, die älter als 30 sind
names = []
for index, row in df.iterrows():
    if row['Alter'] > 30:
        names.append(row['Name'])
print(f"Personen älter als 30 Jahre: {names}")
python

Hier wird mittels Pandas DataFrame.iterrows() der Datensatz durch­lau­fen. In der for-Schleife prüfen wir das Alter und speichern nur passende Namen in der Python-Liste names. Dafür kommt die Python-append()-Funktion zum Einsatz. Das Ergebnis:

Personen älter als 30 Jahre: ['Ben']
Hinweis

Pandas DataFrames.iterrows() ist zwar intuitiv, bei sehr großen Da­ta­Frames aber oft weniger effizient. In solchen Fällen fährst du mit Al­ter­na­ti­ven wie apply() oder vek­to­ri­sier­ten Ope­ra­tio­nen meist besser.

Zum Hauptmenü