Funkcija Python pandas DataFrame.iterrows() se uporablja za po­na­vlja­nje vrstic v pandas DataFrame. Za vsako vrstico za­go­ta­vlja Python tuple, ki vsebuje indeks vrstice in objekt Series s podatki vrstice.

Kakšna je sintaksa za pandas iterrows()?

Osnovna sintaksa pandas DataFrame.iterrows() je preprosta, saj funkcija ne sprejema nobenih pa­ra­me­trov:

df.iterrows()
python

V tem primeru kode je df DataFrame, ki ga želite ponoviti.

Kako upo­ra­blja­ti funkcijo pandas iterrows()

Funkcija DataFrame.iterrows() se običajno uporablja, ko je treba podatke obdelati vrstico po vrstico. Pogosto se kombinira s Pytho­no­vi­mi for-cikli.

Se­šte­va­nje vrednosti v stolpcu

Poglejmo primer DataFrame, ki vsebuje stolpce Ime, Starost in Rezultat:

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

Zgornja koda da naslednji DataFrame:

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

Sedaj iz­ra­ču­naj­mo vsoto točk. Za to lahko uporabimo pandas DataFrame.iterrows():

# 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

V tem primeru smo uporabili funkcijo pandas iterrows(), da smo prešli skozi vsako vrstico in sešteli vrednosti v stolpcu Score eno po eno. To da naslednji rezultat:

The total score is: 265
Note

Pri uporabi pandas iterrows() je pomembno, da ne spre­mi­nja­te ne­po­sre­dno podatkov, ki jih po­na­vlja­te. Glede na vrsto podatkov lahko to privede do ne­pri­ča­ko­va­nih re­zul­ta­tov in ne­že­le­ne­ga delovanja.

Obdelava vrstic z uporabo pogojev

Funkcijo iterrows() lahko uporabite tudi za uporabo pogojev za posamezne vrstice v vašem DataFrame. Recimo, da želite iz DataFrame iz zadnjega primera pridobiti imena vseh oseb, starejših od 30 let:

# 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

V tem primeru smo uporabili DataFrame.iterrows(), da smo pre­gle­da­li vsako vrstico podatkov. Znotraj zanke for preveri vrednosti v stolpcu Age in v seznamu Python shrani samo imena oseb, starejših od 30 let names. To se izvede s funkcijo Python append(). Tukaj je rezultat:

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

Čeprav je uporaba DataFrames.iterrows() enostavna, upo­šte­vaj­te, da morda ne bo delovala učin­ko­vi­to na velikih po­dat­kov­nih okvirih. V mnogih primerih je mogoče za doseganje boljše učin­ko­vi­to­sti uporabiti druge možnosti, kot so apply() ali vektorski izračuni.

Go to Main Menu