Python -funk­tio­nen pandas DataFrame.iterrows() används för att iterera över rader i en pandas DataFrame. För varje rad till­han­da­hål­ler den en Python-tupel som in­ne­hål­ler ra­din­dex­et och ett Series-objekt med radens data.

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

Den grund­läg­gan­de syntaxen för pandas DataFrame.iterrows() är enkel eftersom funk­tio­nen inte tar några pa­ra­met­rar:

df.iterrows()
python

I detta ko­dex­em­pel är df den DataFrame som du vill iterera igenom.

Hur man använder funk­tio­nen pandas iterrows()

Funk­tio­nen DataFrame.iterrows() används van­ligt­vis när du behöver bearbeta data rad för rad. Den kom­bi­ne­ras ofta med Python-for-loopar.

Addera värden i en kolumn

Låt oss titta på ett exempel på en DataFrame som in­ne­hål­ler ko­lum­ner­na 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 re­sul­te­rar 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 funk­tio­nen 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

Funk­tio­nen 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 kon­trol­le­rar 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-funk­tio­nen append(). Här är re­sul­ta­tet:

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 Da­taFrames. I många fall kan andra al­ter­na­tiv, som apply() eller vek­to­ri­se­ra­de be­räk­ning­ar, användas för att få bättre prestanda.

Gå till huvudmeny