Kako z pandas iterrows() prehoditi skozi DataFrames
Funkcija Python pandas DataFrame.iterrows() se uporablja za ponavljanje vrstic v pandas DataFrame. Za vsako vrstico zagotavlja Python tuple, ki vsebuje indeks vrstice in objekt Series s podatki vrstice.
Kakšna je sintaksa za pandas iterrows()?
Osnovna sintaksa pandas DataFrame.iterrows() je preprosta, saj funkcija ne sprejema nobenih parametrov:
df.iterrows()pythonV tem primeru kode je df DataFrame, ki ga želite ponoviti.
Kako uporabljati funkcijo pandas iterrows()
Funkcija DataFrame.iterrows() se običajno uporablja, ko je treba podatke obdelati vrstico po vrstico. Pogosto se kombinira s Pythonovimi for-cikli.
Seštevanje vrednosti v stolpcu
Poglejmo primer DataFrame, ki vsebuje stolpce Ime, Starost in Rezultat:
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)pythonZgornja koda da naslednji DataFrame:
Name Age Score
0 Anna 23 88
1 Ben 35 92
2 Clara 29 85Sedaj izračunajmo vsoto točk. Za to lahko uporabimo 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 tem primeru smo uporabili funkcijo pandas iterrows(), da smo prešli skozi vsako vrstico in sešteli vrednosti v stolpcu Score eno po eno. To da naslednji rezultat:
The total score is: 265Pri uporabi pandas iterrows() je pomembno, da ne spreminjate neposredno podatkov, ki jih ponavljate. Glede na vrsto podatkov lahko to privede do nepričakovanih rezultatov in neželenega delovanja.
Obdelava vrstic z uporabo pogojev
Funkcijo iterrows() lahko uporabite tudi za uporabo pogojev za posamezne vrstice v vašem DataFrame. Recimo, da želite iz DataFrame iz zadnjega primera pridobiti imena vseh oseb, starejših od 30 let:
# 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 tem primeru smo uporabili DataFrame.iterrows(), da smo pregledali vsako vrstico podatkov. Znotraj zanke for preveri vrednosti v stolpcu Age in v seznamu Python shrani samo imena oseb, starejših od 30 let names. To se izvede s funkcijo Python append(). Tukaj je rezultat:
People over 30 years old: ['Ben']Čeprav je uporaba DataFrames.iterrows() enostavna, upoštevajte, da morda ne bo delovala učinkovito na velikih podatkovnih okvirih. V mnogih primerih je mogoče za doseganje boljše učinkovitosti uporabiti druge možnosti, kot so apply() ali vektorski izračuni.