De Python pandas-functie DataFrame.iterrows() wordt gebruikt om rijen in een pandas DataFrame te doorlopen. Voor elke rij levert deze functie een Python-tuple op die de rij-index en een Series-object met de gegevens van de rij bevat.

Wat is de syntaxis voor pandas iterrows()?

De ba­sis­syn­taxis van pandas DataFrame.iterrows() is eenvoudig, aangezien de functie geen pa­ra­me­ters nodig heeft:

df.iterrows()
python

In dit co­de­voor­beeld is df het DataFrame dat u wilt doorlopen.

Hoe gebruik je de functie pandas iterrows()?

De functie DataFrame.iterrows() wordt meestal gebruikt wanneer u gegevens rij voor rij moet verwerken. Deze functie wordt vaak ge­com­bi­neerd met Python for-loops.

Waarden in een kolom optellen

Laten we eens kijken naar een voorbeeld van een DataFrame met de kolommen Naam, Leeftijd en Score:

import pandas as pd
# Creating an example DataFrame
data = {'Name': ['Anna', 'Ben', 'Clara'],
    'Age': [23, 35, 29],
    'Score': [88, 92, 85]}
df = pd.DataFrame(data)
print(df)
python

De bo­ven­staan­de code re­sul­teert in het volgende DataFrame:

Name  Age  Score
0   Anna    23     88
1    Ben    35     92
2  Clara    29     85

Laten we nu de som van de scores berekenen. We kunnen hiervoor pandas DataFrame.iterrows() gebruiken:

# Calculating the total score
total_score = 0
for index, row in df.iterrows():
    total_score += row['Score']
print(f"The total score is: {total_score}")
python

In dit voorbeeld hebben we de functie pandas iterrows() gebruikt om elke rij te doorlopen en de waarden in de kolom Score één voor één bij elkaar op te tellen. Dit levert het volgende resultaat op:

The total score is: 265
Opmerking

Bij het gebruik van pandas iterrows() is het be­lang­rijk om de gegevens waarover u itereert niet recht­streeks te wijzigen. Af­han­ke­lijk van het ge­ge­vens­ty­pe kan dit leiden tot on­ver­wach­te re­sul­ta­ten en onbedoeld gedrag.

Rijen verwerken met behulp van voor­waar­den

De functie iterrows() kan ook worden gebruikt om voor­waar­den toe te passen op af­zon­der­lij­ke rijen in uw DataFrame. Stel dat u bij­voor­beeld de namen wilt ophalen van iedereen ouder dan 30 jaar in de DataFrame uit het vorige voorbeeld:

# Retrieving names of people over 30 years old
names = []
for index, row in df.iterrows():
    if row['Age'] > 30:
        names.append(row['Name'])
print(f"People over 30 years old: {names}")
python

In dit voorbeeld hebben we DataFrame.iterrows() gebruikt om elke rij met gegevens te doorlopen. Binnen de for-lus con­tro­leert het de waarden in de kolom Leeftijd en slaat het alleen de namen van mensen ouder dan 30 jaar op in de Python-lijst names. Dit wordt gedaan met behulp van de Python-functie append(). Dit is het resultaat:

People over 30 years old: ['Ben']
Opmerking

Hoewel DataFrames.iterrows() ge­mak­ke­lijk te gebruiken is, moet u er rekening mee houden dat het mogelijk niet efficiënt werkt bij grote Da­taF­ra­mes. In veel gevallen kunnen andere opties, zoals apply() of ge­vec­to­ri­seer­de be­re­ke­nin­gen, worden gebruikt om betere pres­ta­ties te bereiken.

Ga naar hoofdmenu