Jak procházet DataFrames pomocí pandas iterrows()
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()pythonV 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)pythonVýš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 85Nyní 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}")pythonV 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: 265Př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}")pythonV 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']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.