# Kaip kartoti DataFrames su pandas iterrows()

Python pandas funkcija `DataFrame.iterrows()` naudojama **kartoti pandas DataFrame eilutes**. Kiekvienai eilutei ji pateikia Python tuple, kuriame yra eilutės indeksas ir Series objektas su eilutės duomenimis.

## Kokia yra pandas `iterrows()` sintaksė?

Pagrindinė pandas `DataFrame.iterrows()` sintaksė yra paprasta, nes funkcija **nepriima jokių parametrų**:

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

Š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 stulpelyje

Pažvelkime į pavyzdinį duomenų rėmelį, kuriame yra stulpeliai *„Vardas“*, *„Amžius“* ir *„Rezultatas*“:

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

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

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

Dabar apskaičiuokime balų sumą. Tam galime naudoti 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}")
```

Šiame pavyzdyje naudojome pandas `iterrows()` funkciją, kad apibėgtume kiekvieną eilutę, po vieną sudėdami stulpelyje *„Score“* esančias reikšmes. Tai duoda tokį rezultatą:

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

Note Naudojant pandas `iterrows()`, svarbu **tiesiogiai nemodifikuoti** duomenų, kuriuos kartojate. Priklausomai nuo duomenų tipo, tai gali sukelti netikėtus rezultatus ir nenumatytą elgesį.

### Eilučių apdorojimas naudojant sąlygas

Funkcija `iterrows()` taip pat gali būti naudojama sąlygoms taikyti atskiriems DataFrame eilutėms. Pavyzdžiui, tarkime, kad norite gauti visų vyresnių nei 30 metų asmenų vardus iš paskutinio pavyzdžio DataFrame:

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

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

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

Note Nors `DataFrames.iterrows()` naudoti lengva, turėkite omenyje, kad **dideliuose duomenų rėmuose** jis **gali neveikti efektyviai**. Daugeliu atvejų, norint pasiekti geresnį našumą, galima naudoti kitas parinktis, pvz., `apply()` arba vektoriškai apskaičiuotus skaičiavimus.


This is a markdown version of: [https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/python-pandas-dataframe-iterrows/](https://www.ionos.com/lt-lt/digitalguide/interneto-svetaines/interneto-svetainiu-kurimas/python-pandas-dataframe-iterrows/) for AI/LLM consumption.