Kā iziet cauri DataFrames ar pandas iterrows()
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 parametrus:
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 nepiecieš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ā
Apskatī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)pythonIepriekš minētais kods rada šādu DataFrame:
Name Age Score
0 Anna 23 88
1 Ben 35 92
2 Clara 29 85Tagad aprēķināsim punktu summu. To var izdarīt, izmantojot 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 izmantojā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: 265Lietojot pandas iterrows(), ir svarīgi nemainīt datus , kurus atkārtojat. Atkarībā no datu tipa, tas var izraisīt negaidītus rezultātus un neparedzētu darbību.
Rindu apstrāde, izmantojot nosacījumus
Funkciju iterrows() var izmantot arī, lai piemērotu nosacījumus atsevišķā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 izmantojā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, izmantojot Python funkciju append(). Šeit ir rezultāts:
People over 30 years old: ['Ben']Lai gan DataFrames.iterrows() ir viegli lietojams, jāpatur prātā, ka tas var nedarboties efektīvi ar lieliem DataFrames. Daudzos gadījumos, lai sasniegtu labāku veiktspēju, var izmantot citas opcijas, piemēram, apply() vai vektoru aprēķinus.