Python -funktionen pandas DataFrame.iterrows() används för att iterera över rader i en pandas DataFrame. För varje rad tillhandahåller den en Python-tupel som innehåller radindexet och ett Series-objekt med radens data.

Vad är syntaxen för pandas iterrows()?

Den grundläggande syntaxen för pandas DataFrame.iterrows() är enkel eftersom funktionen inte tar några parametrar:

df.iterrows()
python

I detta kodexempel är df den DataFrame som du vill iterera igenom.

Hur man använder funktionen pandas iterrows()

Funktionen DataFrame.iterrows() används vanligtvis när du behöver bearbeta data rad för rad. Den kombineras ofta med Python-for-loopar.

Addera värden i en kolumn

Låt oss titta på ett exempel på en DataFrame som innehåller kolumnerna Namn, Ålder och Poäng:

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

Koden ovan resulterar i följande DataFrame:

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

Nu ska vi beräkna summan av poängen. Vi kan använda pandas DataFrame.iterrows() för att göra detta:

# 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

I det här exemplet använde vi funktionen pandas iterrows() för att gå igenom varje rad och lägga ihop värdena i kolumnen Score ett efter ett. Detta ger följande resultat:

The total score is: 265
Notis

När du använder pandas iterrows() är det viktigt att inte direkt ändra de data du itererar över. Beroende på datatyp kan detta leda till oväntade resultat och oönskat beteende.

Bearbeta rader med hjälp av villkor

Funktionen iterrows() kan också användas för att tillämpa villkor på enskilda rader i din DataFrame. Låt oss till exempel säga att du vill hämta namnen på alla över 30 år i DataFrame från det senaste exemplet:

# 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

I det här exemplet använde vi DataFrame.iterrows() för att gå igenom varje rad med data. Inuti for-slingan kontrollerar den värdena i kolumnen Ålder och lagrar endast namnen på personer över 30 år i Python-listan names. Detta görs med hjälp av Python-funktionen append(). Här är resultatet:

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

Det är enkelt att använda DataFrames.iterrows(), men tänk på att det kanske inte fungerar så bra med stora DataFrames. I många fall kan andra alternativ, som apply() eller vektoriserade beräkningar, användas för att få bättre prestanda.

Gå till huvudmeny