Python pandas funkcija DataFrame.iterrows() tiek izmantota, lai iterētu pāri rindām pandas DataFrame. Katrai rindai tā nodrošina Python tuple, kas satur rindas indeksu un Series objektu ar rindas datiem.

Kāda ir pandas iterrows() sintakse?

Pandas DataFrame.iterrows() pamata sintakse ir vienkārša, jo funkcija nepieņem nekādus pa­ra­met­rus:

df.iterrows()
python

Šajā koda piemērā df ir DataFrame, kuru vēlaties iziet cauri.

Kā lietot pandas iterrows() funkciju

DataFrame.iterrows() funkcija parasti tiek izmantota, ja ir ne­pie­cie­šams apstrādāt datus rindu pa rindai. Tā bieži tiek kombinēta ar Python for-cilpām.

Vērtību summēšana kolonnā

Ap­ska­tī­sim piemēru DataFrame, kas satur kolonnu Name, Age un 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

Iepriekš minētais kods rada šādu DataFrame:

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

Tagad ap­rē­ķi­nā­sim punktu summu. To var izdarīt, iz­man­to­jot 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

Šajā piemērā mēs iz­man­to­jām pandas iterrows() funkciju, lai izietu cauri katrai rindai, summējot vērtības kolonnā Score viena pēc otras. Tas dod šādu rezultātu:

The total score is: 265
Note

Lietojot pandas iterrows(), ir svarīgi nemainīt datus , kurus at­kār­to­jat. Atkarībā no datu tipa, tas var izraisīt ne­gai­dī­tus re­zul­tā­tus un ne­pa­re­dzē­tu darbību.

Rindu apstrāde, iz­man­to­jot no­sa­cī­ju­mus

Funkciju iterrows() var izmantot arī, lai piemērotu no­sa­cī­ju­mus at­se­viš­ķām rindām jūsu DataFrame. Piemēram, pieņemsim, ka jūs vēlaties iegūt visu DataFrame pēdējā piemērā minēto personu vārdus, kuras ir vecākas par 30 gadiem:

# 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

Šajā piemērā mēs iz­man­to­jām DataFrame.iterrows(), lai izietu cauri katrai datu rindai. For-cilpas iekšienē tā pārbauda vērtības kolonnā Age un Python sarakstā saglabā tikai to cilvēku vārdus, kuri ir vecāki par 30 gadiem names. Tas tiek veikts, iz­man­to­jot Python funkciju append(). Šeit ir rezultāts:

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

Lai gan DataFrames.iterrows() ir viegli lietojams, jāpatur prātā, ka tas var ne­dar­bo­ties efektīvi ar lieliem Da­taF­ra­mes. Daudzos gadījumos, lai sasniegtu labāku veikt­spē­ju, var izmantot citas opcijas, piemēram, apply() vai vektoru aprēķinus.

Go to Main Menu