Funkcia Python pandas DataFrame.iterrows() sa používa na iteráciu nad riadkami v pandas DataFrame. Pre každý riadok poskytuje Python tuple, ktorý obsahuje index riadku a objekt Series s údajmi riadku.

Aká je syntax pre pandas iterrows()?

Základná syntax pandas DataFrame.iterrows() je jednoduchá, pretože funkcia neberie žiadne parametre:

df.iterrows()
python

V tomto príklade kódu je df DataFrame, ktorý chcete iterovať.

Ako používať funkciu pandas iterrows()

Funkcia DataFrame.iterrows() sa zvyčajne používa, keď potrebujete spracovať údaje po riadkoch. Často sa kombinuje s cyklami for v jazyku Python.

Sčítanie hodnôt v stĺpci

Pozrime sa na príklad DataFrame, ktorý obsahuje stĺpce Name, Age a 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

Výsledkom vyššie uvedeného kódu je nasledujúci DataFrame:

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

Teraz spočítajme súčet bodov. Na to môžeme použiť 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 tomto príklade sme použili funkciu pandas iterrows() na prechádzanie každého riadku a sčítanie hodnôt v stĺpci Skóre jeden po druhom. Výsledok je nasledujúci:

The total score is: 265
Poznámka

Pri používaní pandas iterrows() je dôležité, aby ste priamo nemodifikovali údaje, ktoré iterujete. V závislosti od typu údajov môže takéto konanie viesť k neočakávaným výsledkom a nežiaducemu správaniu.

Spracovanie riadkov pomocou podmienok

Funkcia iterrows() sa dá použiť aj na aplikovanie podmienok na jednotlivé riadky v DataFrame. Predpokladajme napríklad, že chcete získať mená všetkých osôb starších ako 30 rokov v DataFrame z posledného príkladu:

# 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 tomto príklade sme použili DataFrame.iterrows() na prechádzanie každého riadku údajov. Vo vnútri cyklu for kontroluje hodnoty v stĺpci Vek a do zoznamu Python names ukladá len mená ľudí starších ako 30 rokov. To sa vykonáva pomocou funkcie Python append(). Tu je výsledok:

People over 30 years old: ['Ben']
Poznámka

Hoci je použitie DataFrames.iterrows() jednoduché, majte na pamäti, že pri veľkých dátových rámcoch nemusí fungovať efektívne. V mnohých prípadoch je možné na dosiahnutie lepšieho výkonu použiť iné možnosti, ako napríklad apply() alebo vektorizované výpočty.

Prejsť na hlavné menu