Die Python-Pandas-Funktion DataFrame.iterrows() wird verwendet, um über die Zeilen eines Pandas Da­ta­Frames zu iterieren. Sie liefert für jede Zeile ein Python Tuple aus dem Index und einer Series, die die Daten der ent­spre­chen­den Zeile enthält.

Web­hos­ting
Das beste Web­hos­ting zum Spit­zen­preis
  • 3x schneller und 60 % günstiger
  • Maximale Ver­füg­bar­keit mit > 99.99 %
  • Nur bei IONOS: Bis zu 500 GB Spei­cher­platz inklusive

Syntax von Pandas iterrows()

Die grund­le­gen­de Syntax von Pandas DataFrame.iterrows() ist einfach, denn die Funktion nimmt keinerlei Parameter entgegen:

df.iterrows()
python

Im obigen Code­bei­spiel be­zeich­net df den DataFrame, über den iteriert werden soll.

Anwendung der Pandas-iterrows()-Funktion

Die Funktion DataFrame.iterrows() wird ty­pi­scher­wei­se immer dann an­ge­wen­det, wenn Sie Daten zei­len­wei­se ver­ar­bei­ten müssen. Häufig wird sie daher mit Python-for-Loops kom­bi­niert.

Summieren von Werten einer Spalte

Im Folgenden wird ein DataFrame mit den Spalten Name, Alter und Punktzahl be­trach­tet:

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

Der obige Code re­sul­tiert in folgendem DataFrame:

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

Nun soll die Summe der Punkt­zah­len berechnet werden. Hierfür kann Pandas DataFrame.iterrows() genutzt werden:

# 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

In diesem Beispiel wird die Pandas-iterrows()-Funktion verwendet, um über die Zeilen zu iterieren und die Werte in der Spalte Punktzahl suk­zes­si­ve zu summieren. Das Ergebnis sieht wie folgt aus:

Die Gesamtsumme der Punktzahlen beträgt: 265
Hinweis

Bei der Arbeit mit Pandas iterrows() sollten Sie darauf achten, die Daten, über die Sie iterieren, niemals direkt zu verändern. Dies führt je nach Datentyp nicht zum ge­wünsch­ten Erfolg und kann in un­vor­her­ge­se­he­nem Verhalten re­sul­tie­ren.

Bedingte Zei­len­be­ar­bei­tung

Die iterrows()-Funktion kann auch genutzt werden, um Be­din­gun­gen auf einzelne Zeilen Ihres Da­ta­Frames an­zu­wen­den. Stellen Sie sich vor, Sie möchten im bereits bekannten DataFrame die Namen aller Personen abrufen, die älter als 30 Jahre 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

Im Code­bei­spiel wird mithilfe von Pandas DataFrame.iterrows() durch die Zeilen des Da­ten­sat­zes iteriert. Innerhalb der for-Schleife werden die Werte der Spalte Alter be­trach­tet, um nur die Namen der Personen in der Python-Liste names zu speichern, die älter als 30 Jahre sind. Hierfür wird die Python-append()-Funktion genutzt. Dieses Vorgehen führt zu folgendem Resultat:

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

Obwohl Pandas DataFrames.iterrows() einfach an­zu­wen­den ist, sollte sie aufgrund der po­ten­zi­ell nied­ri­ge­ren Effizienz bei großen Da­ta­Frames mit Bedacht verwendet werden. In vielen Fällen gibt es per­for­man­te­re Al­ter­na­ti­ven wie apply() oder vek­to­ri­sier­tes Rechnen mit Pandas.

Zum Hauptmenü