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.
- 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()
pythonIm 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)
pythonDer 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}")
pythonIn 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
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}")
pythonIm 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']
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.