Python pandas funkcija DataFrame.iterrows() naudojama kartoti pandas DataFrame eilutes. Kiek­vie­nai eilutei ji pateikia Python tuple, kuriame yra eilutės indeksas ir Series objektas su eilutės duo­me­ni­mis.

Kokia yra pandas iterrows() sintaksė?

Pag­rin­di­nė pandas DataFrame.iterrows() sintaksė yra paprasta, nes funkcija nepriima jokių parametrų:

df.iterrows()
python

Šiame kodo pavyzdyje df yra DataFrame, kurį norite kartoti.

Kaip naudoti pandas iterrows() funkciją

DataFrame.iterrows() funkcija paprastai naudojama, kai reikia apdoroti duomenis eilutė po eilutės. Ji dažnai derinama su Python for-sąlygomis.

Vertių sudėties stul­pe­ly­je

Pa­žvel­ki­me į pavyzdinį duomenų rėmelį, kuriame yra stul­pe­liai „Vardas“, „Amžius“ ir „Re­zul­ta­tas“:

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

Pateiktas kodas sukuria tokį duomenų rėmelį:

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

Dabar ap­skai­čiuo­ki­me balų sumą. Tam galime naudoti 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

Šiame pavyzdyje naudojome pandas iterrows() funkciją, kad api­bėg­tu­me kiekvieną eilutę, po vieną sudėdami stul­pe­ly­je „Score“ esančias reikšmes. Tai duoda tokį rezultatą:

The total score is: 265
Note

Naudojant pandas iterrows(), svarbu tie­sio­giai nemo­di­fi­kuo­ti duomenų, kuriuos kartojate. Pri­klau­so­mai nuo duomenų tipo, tai gali sukelti netikėtus re­zul­ta­tus ir ne­nu­ma­ty­tą elgesį.

Eilučių ap­do­ro­ji­mas naudojant sąlygas

Funkcija iterrows() taip pat gali būti naudojama sąlygoms taikyti at­ski­riems DataFrame eilutėms. Pa­vyz­džiui, tarkime, kad norite gauti visų vyresnių nei 30 metų asmenų vardus iš pas­ku­ti­nio pavyzdžio DataFrame:

# 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

Šiame pavyzdyje naudojome DataFrame.iterrows(), kad pereitume per kiekvieną duomenų eilutę. For-loop viduje jis patikrina amžiaus stul­pe­ly­je esančias vertes ir Python sąraše saugo tik vyresnių nei 30 metų žmonių vardus names. Tai daroma naudojant Python append() funkciją. Štai re­zul­ta­tas:

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

Nors DataFrames.iterrows() naudoti lengva, turėkite omenyje, kad di­de­liuo­se duomenų rėmuose jis gali neveikti efek­ty­viai. Daugeliu atvejų, norint pasiekti geresnį našumą, galima naudoti kitas parinktis, pvz., apply() arba vek­to­riš­kai ap­skai­čiuo­tus skai­čia­vi­mus.

Go to Main Menu