A Python pandas DataFrame.iterrows() függvényt a pandas DataFrame sorainak iterálására használják. Minden sorhoz egy Python tuple-t biztosít, amely tartalmazza a sor indexét és egy Series objektumot a sor adataival.

Mi a pandas iterrows() szintaxisa?

A pandas DataFrame.iterrows() alapvető szintaxisa egyszerű, mivel a függvény nem fogad paramétereket:

df.iterrows()
python

Ebben a kódpéldában df az a DataFrame, amelyet végig szeretne futtatni.

A pandas iterrows() függvény használata

A DataFrame.iterrows() funkciót általában akkor használják, ha az adatokat soronként kell feldolgozni. Gyakran kombinálják Python for-ciklusokkal.

Értékek összeadása egy oszlopban

Nézzünk meg egy példát egy DataFrame-re, amely a Name, Age és Score oszlopokat tartalmazza:

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

A fenti kód a következő DataFrame-et eredményezi:

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

Most számoljuk ki a pontok összegét. Ehhez a pandas DataFrame.iterrows() használhatjuk:

# 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

Ebben a példában a pandas iterrows() függvényt használtuk az egyes sorok végigfutásához, és egyenként összeadtuk a Score oszlop értékeit. Ez a következő eredményt adja:

The total score is: 265
Megjegyzés

A pandas iterrows() használatakor fontos, hogy ne módosítsa közvetlenül az iterált adatokat. Az adattípustól függően ez váratlan eredményekhez és nem kívánt viselkedéshez vezethet.

Sorok feldolgozása feltételek használatával

A iterrows() funkcióval feltételeket is alkalmazhat az DataFrame egyes soraiban. Tegyük fel például, hogy az előző példában szereplő DataFrame-ből ki szeretné hívni a 30 év feletti személyek nevét:

# 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

Ebben a példában DataFrame.iterrows() használtuk az adatok minden sorának áttekintéséhez. A for-cikluson belül ellenőrzi az Age oszlop értékeit, és csak a 30 év feletti személyek nevét tárolja a Python listában names. Ez a Python append() függvény segítségével történik. Íme az eredmény:

People over 30 years old: ['Ben']
Megjegyzés

Bár DataFrames.iterrows() használata egyszerű, ne feledje, hogy nagy DataFrame-eken nem biztos, hogy hatékonyan fog működni. Sok esetben más opciók, például apply() vagy a vektorizált számítások használatával jobb teljesítmény érhető el.

Ugrás a főmenübe