Funkce Python pandas DataFrame.iterrows() se používá k iterování nad řádky v pandas DataFrame. Pro každý řádek poskytuje Python tuple, který obsahuje index řádku a objekt Series s daty řádku.

Jaká je syntaxe pro pandas iterrows()?

Základní syntaxe pandas DataFrame.iterrows() je jednoduchá, protože funkce nepřijímá žádné parametry:

df.iterrows()
python

V tomto příkladu kódu je df datový rámec, který chcete iterovat.

Jak používat funkci pandas iterrows()

Funkce DataFrame.iterrows() se obvykle používá, když potřebujete zpracovat data řádek po řádku. Často se kombinuje s cykly for v jazyce Python.

Sčítání hodnot ve sloupci

Podívejme se na příklad DataFrame, který obsahuje sloupce Name, Age a 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

Výše uvedený kód vede k následujícímu DataFrame:

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

Nyní spočítáme součet skóre. K tomu můžeme použít 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

V tomto příkladu jsme použili funkci pandas iterrows() k procházení jednotlivých řádků a postupnému sčítání hodnot ve sloupci Skóre. Výsledek je následující:

The total score is: 265
Poznámka

Při používání pandas iterrows() je důležité přímo neměnit data, nad kterými provádíte iterace. V závislosti na datovém typu může takové jednání vést k neočekávaným výsledkům a nechtěnému chování.

Zpracování řádků pomocí podmínek

Funkci iterrows() lze také použít k použití podmínek na jednotlivé řádky v datovém rámci. Předpokládejme například, že chcete získat jména všech osob starších 30 let v datovém rámci z předchozího příkladu:

# 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

V tomto příkladu jsme použili DataFrame.iterrows() k procházení jednotlivých řádků dat. Uvnitř smyčky for se kontrolují hodnoty ve sloupci Age a do seznamu Pythonu se ukládají pouze jména osob starších 30 let names. To se provádí pomocí funkce Pythonu append(). Zde je výsledek:

People over 30 years old: ['Ben']
Poznámka

Ačkoli je použití DataFrames.iterrows() snadné, mějte na paměti, že u velkých datových rámců nemusí fungovat efektivně. V mnoha případech lze k dosažení lepšího výkonu použít jiné možnosti, jako je apply() nebo vektorizované výpočty.

Přejít do hlavního menu