Python pandas funkt­siooni DataFrame.iterrows() ka­su­ta­takse pandas DataFrame’i ridade lä­bi­miseks. Iga rea jaoks pakub see Python-tuple’it, mis sisaldab rea indeksit ja Series-objekti rea andmetega.

Mis on pandas iterrows() süntaks?

Pandas DataFrame.iterrows() põhiline süntaks on lihtne, kuna funkt­sioon ei võta vastu mingeid pa­ra­meetreid:

df.iterrows()
python

Selles koo­di­näi­tes on df andmestik, mida soovite läbi käia.

Kuidas kasutada pandas iterrows() funkt­siooni

Funkt­siooni DataFrame.iterrows() ka­su­ta­takse ta­va­li­selt siis, kui on vaja töödelda andmeid rida haaval. Seda kom­bi­nee­ri­takse sageli Python for-tsük­li­tega.

Veeru väärtuste liitmine

Vaadakem näidet DataFrame’ist, mis sisaldab veerge Name, Age ja 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

Eespool toodud kood annab järgmise DataFrame’i:

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

Nüüd arvutame punktide summa. Selleks saame kasutada 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

Selles näites ka­su­ta­sime pandas iterrows() funkt­siooni, et läbida iga rida, liites üksteise järel kokku veerus „Score” olevad väärtused. See annab järgmise tulemuse:

The total score is: 265
Note

Pandas iterrows() ka­su­ta­misel on oluline mitte muuta otseselt andmeid, mida ite­rat­sioo­niga töö­del­dakse. Sõltuvalt and­me­tüü­bist võib see põh­jus­tada oo­ta­ma­tuid tulemusi ja soo­vi­ma­tut käitumist.

Ridade tööt­le­mine tin­gi­muste abil

Funkt­siooni iterrows() saab kasutada ka tin­gi­muste ra­ken­da­miseks DataFrame’i ük­si­ku­tele ridadele. Näiteks, oletame, et soovite viimasest näidisest DataFrame’ist välja otsida kõik üle 30-aastased isikud:

# 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

Selles näites ka­su­ta­sime DataFrame.iterrows(), et läbida iga and­me­reaga. For-tsükli sees kont­rol­li­takse vanuse veeru väärtusi ja sal­ves­ta­takse Python-nimekirja names ainult üle 30-aastaste inimeste nimed. Selleks ka­su­ta­takse Python-funkt­siooni append(). Siin on tulemus:

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

Kuigi DataFrames.iterrows() on lihtne kasutada, pea meeles, et see ei pruugi suuremate and­me­st­ruk­tuu­ride puhul tõhusalt töötada. Paljudel juhtudel saab parema tulemuse saa­vu­ta­miseks kasutada teisi võimalusi, nagu apply() või vek­to­ri­see­ri­tud arvutused.

Go to Main Menu