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
text

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
text
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']
text
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.

Reviewer

Zum Hauptmenü