# Kuinka silmukoida DataFrames-kehyksiä pandas iterrows()-funktiolla

Python pandas -funktiota `DataFrame.iterrows()` käytetään **toistamaan pandas DataFrame -taulukon rivejä**. Se tarjoaa jokaiselle riville Python-tuple-tyyppisen objektin, joka sisältää rivin indeksin ja Series-objektin, jossa on rivin tiedot.

## Mikä on pandas `iterrows()`:n syntaksi?

Pandas `DataFrame.iterrows()`:n perusrakenteet ovat yksinkertaiset, koska funktio **ei vaadi parametreja**:

```python
df.iterrows()
```

Tässä koodiesimerkissä `df` on DataFrame, jonka haluat iteroida.

## Kuinka käyttää pandas `iterrows()` -funktiota

`DataFrame.iterrows()` -funktiota käytetään tyypillisesti, kun **tietoja** on **käsiteltävä rivi riviltä**. Se yhdistetään usein Pythonin for-silmukoihin.

### Sarakkeen arvojen yhteenlaskeminen

Katsotaanpa esimerkkiä DataFrame-taulukosta, joka sisältää sarakkeet *Name*, *Age* ja *Score*:

```python
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)
```

Yllä oleva koodi tuottaa seuraavan DataFrame-kehyksen:

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

Lasketaan nyt pisteiden summa. Voimme käyttää tähän pandas `DataFrame.iterrows()`:

```python
# 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}")
```

Tässä esimerkissä käytimme pandas `iterrows()` -funktiota kiertämään jokaisen rivin läpi ja laskemaan yhteen *Score* -sarakkeen arvot yksi kerrallaan. Tämä tuottaa seuraavan tuloksen:

```none
The total score is: 265
```

Huomio Kun käytät pandas `iterrows()`, on tärkeää **, ettet muokkaa suoraan** toistettavia tietoja. Tietotyypistä riippuen tämä voi johtaa odottamattomiin tuloksiin ja tahattomaan toimintaan.

### Rivien käsittely ehtojen avulla

`iterrows()` voidaan käyttää myös ehtojen soveltamiseen DataFrame-taulukon yksittäisiin riveihin. Oletetaan esimerkiksi, että haluat hakea DataFrame-taulukosta edellisen esimerkin kaikki yli 30-vuotiaat henkilöt:

```python
# 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}")
```

Tässä esimerkissä käytimme `DataFrame.iterrows()` käydäksemme läpi jokaisen datarivin. For-silmukan sisällä se tarkistaa *Age-sarakkeen* arvot ja tallentaa vain yli 30-vuotiaiden henkilöiden nimet Python-listaan `names`. Tämä tehdään Pythonin append()-funktiolla. Tässä on tulos:

```none
People over 30 years old: ['Ben']
```

Huomio Vaikka `DataFrames.iterrows()` on helppokäyttöinen, on syytä muistaa, että se **ei välttämättä toimi tehokkaasti suurissa DataFrame-kehyksissä**. Monissa tapauksissa voidaan käyttää muita vaihtoehtoja, kuten `apply()` tai vektoroituja laskelmia, parempaan suorituskykyyn pääsemiseksi.


This is a markdown version of: [https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-pandas-dataframe-iterrows/](https://www.ionos.com/fi-fi/digitalguide/verkkosivustot/verkkosivujen-kehittaeminen/python-pandas-dataframe-iterrows/) for AI/LLM consumption.