Pandas iterrows(): So iterieren Sie über DataFrames

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

Top-Hosting für Ihre Website
Webhosting
  • Flexibel: Hosting, das jedem Website-Traffic standhält
  • Verlässlich: Inklusive 24/7-Support und persönlicher Beratung
  • Sicher: Kostenloses SSL-Zertifikat, DDoS-Schutz und Backups

Syntax von Pandas iterrows()

Die grundlegende Syntax von Pandas DataFrame.iterrows() ist einfach, denn die Funktion nimmt keinerlei Parameter entgegen:

df.iterrows()
python

Im obigen Codebeispiel bezeichnet df den DataFrame, über den iteriert werden soll.

Anwendung der Pandas-iterrows()-Funktion

Die Funktion DataFrame.iterrows() wird typischerweise immer dann angewendet, wenn Sie Daten zeilenweise verarbeiten müssen. Häufig wird sie daher mit Python-for-Loops kombiniert.

Summieren von Werten einer Spalte

Im Folgenden wird ein DataFrame mit den Spalten Name, Alter und Punktzahl betrachtet:

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

Der obige Code resultiert in folgendem DataFrame:

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

Nun soll die Summe der Punktzahlen 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 sukzessive 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 gewünschten Erfolg und kann in unvorhergesehenem Verhalten resultieren.

Bedingte Zeilenbearbeitung

Die iterrows()-Funktion kann auch genutzt werden, um Bedingungen auf einzelne Zeilen Ihres DataFrames anzuwenden. 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 Codebeispiel wird mithilfe von Pandas DataFrame.iterrows() durch die Zeilen des Datensatzes iteriert. Innerhalb der for-Schleife werden die Werte der Spalte Alter betrachtet, 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 anzuwenden ist, sollte sie aufgrund der potenziell niedrigeren Effizienz bei großen DataFrames mit Bedacht verwendet werden. In vielen Fällen gibt es performantere Alternativen wie apply() oder vektorisiertes Rechnen mit Pandas.

War dieser Artikel hilfreich?
Page top