Ako prechádzať DataFrames pomocou pandas iterrows()
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()pythonV 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)pythonVý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 85Teraz 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}")pythonV 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: 265Pri 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}")pythonV 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']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.