# Pandas iterrows(): So iterieren Sie über DataFrames

Die Python-Pandas-Funktion `DataFrame.iterrows()` wird verwendet, um über die **Zeilen eines [Pandas DataFrames](https://www.ionos.com/de-ch/digitalguide/websites/web-entwicklung/python-pandas-dataframe/) 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.

## Syntax von Pandas `iterrows()`

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

```python
df.iterrows()
```

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:

```python
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)
```

Der obige Code resultiert in folgendem DataFrame:

```none
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:

```python
# 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}")
```

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:

```none
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:

```python
# 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}")
```

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:

```none
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.


This is a markdown version of: [https://www.ionos.com/de-ch/digitalguide/websites/web-entwicklung/python-pandas-dataframe-iterrows/](https://www.ionos.com/de-ch/digitalguide/websites/web-entwicklung/python-pandas-dataframe-iterrows/) for AI/LLM consumption.