Hogyan lehet végigfutni a DataFrames-eken a pandas iterrows() segítségével?
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()pythonEbben 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)pythonA fenti kód a következő DataFrame-et eredményezi:
Name Age Score
0 Anna 23 88
1 Ben 35 92
2 Clara 29 85Most 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}")pythonEbben 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: 265A 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}")pythonEbben 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']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.