Python pandas-funksjonen DataFrame.iterrows() brukes til å iterere over rader i en pandas DataFrame. For hver rad gir den en Python-tuple som inneholder radindeksen og et Series-objekt med radenes data.

Hva er syntaksen for pandas iterrows()?

Den grunnleggende syntaksen til pandas DataFrame.iterrows() er enkel, siden funksjonen ikke tar noen parametere:

df.iterrows()
python

I dette kodeeksemplet er df DataFrame-en du ønsker å iterere gjennom.

Hvordan bruke funksjonen pandas iterrows()

Funksjonen DataFrame.iterrows() brukes vanligvis når du trenger å behandle data rad for rad. Den kombineres ofte med Python for-løkker.

Legge sammen verdier i en kolonne

La oss se på et eksempel på en DataFrame som inneholder kolonnene Name, Age og 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

Koden ovenfor resulterer i følgende DataFrame:

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

La oss nå beregne summen av poengene. Vi kan bruke pandas DataFrame.iterrows() til å gjøre dette:

# 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

I dette eksemplet brukte vi iterrows() -funksjonen til å løpe gjennom hver rad og legge sammen verdiene i kolonnen Score én etter én. Dette gir følgende resultat:

The total score is: 265
Note

Når du bruker pandas iterrows(), er det viktig å ikke endre dataene du itererer over direkte. Avhengig av datatypen kan dette føre til uventede resultater og utilsiktet oppførsel.

Behandling av rader ved hjelp av betingelser

Funksjonen iterrows() kan også brukes til å bruke betingelser på enkelte rader i DataFrame. La oss for eksempel si at du vil hente navnene på alle over 30 år i DataFrame fra det siste eksemplet:

# 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

I dette eksemplet brukte vi DataFrame.iterrows() til å gå gjennom hver rad med data. Inne i for-sløyfen sjekker den verdiene i kolonnen Age og lagrer bare navnene på personer over 30 år i Python-listen names. Dette gjøres ved hjelp av Python-funksjonen append(). Her er resultatet:

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

Selv om det er enkelt å bruke DataFrames.iterrows(), må du huske at det kanskje ikke fungerer effektivt på store DataFrames. I mange tilfeller kan andre alternativer som apply() eller vektoriserte beregninger brukes for å oppnå bedre ytelse.

Go to Main Menu