Cum să parcurgeți DataFrames cu pandas iterrows()
Funcția Python pandas DataFrame.iterrows() este utilizată pentru a itera peste rândurile dintr-un DataFrame pandas. Pentru fiecare rând, aceasta furnizează un tuple Python care conține indexul rândului și un obiect Series cu datele rândului.
Care este sintaxa pentru pandas iterrows()?
Sintaxa de bază a pandas DataFrame.iterrows() este simplă, deoarece funcția nu acceptă niciun parametru:
df.iterrows()pythonÎn acest exemplu de cod, df este DataFrame pe care doriți să îl parcurgeți.
Cum se utilizează funcția pandas iterrows()
Funcția DataFrame.iterrows() este utilizată de obicei atunci când trebuie să procesați datele rând cu rând. Este adesea combinată cu buclele for din Python.
Adunarea valorilor dintr-o coloană
Să analizăm un exemplu de DataFrame care conține coloanele Nume, Vârstă și Punctaj:
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)pythonCodul de mai sus generează următorul DataFrame:
Name Age Score
0 Anna 23 88
1 Ben 35 92
2 Clara 29 85Acum, să calculăm suma punctajelor. Pentru aceasta, putem folosi 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În acest exemplu, am folosit funcția pandas iterrows() pentru a parcurge fiecare rând, adăugând valorile din coloana Score una câte una. Acest lucru produce următorul rezultat:
The total score is: 265Când utilizați pandas iterrows(), este important să nu modificați direct datele pe care le parcurgeți. În funcție de tipul de date, acest lucru poate duce la rezultate neașteptate și comportamente neintenționate.
Prelucrarea rândurilor utilizând condiții
Funcția iterrows() poate fi utilizată și pentru a aplica condiții la rânduri individuale din DataFrame. De exemplu, să presupunem că doriți să extrageți numele tuturor persoanelor cu vârsta peste 30 de ani din DataFrame din ultimul exemplu:
# 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În acest exemplu, am folosit DataFrame.iterrows() pentru a parcurge fiecare rând de date. În interiorul buclei for, se verifică valorile din coloana Age și se stochează numai numele persoanelor cu vârsta peste 30 de ani în lista Python names. Acest lucru se realizează folosind funcția Python append(). Iată rezultatul:
People over 30 years old: ['Ben']Deși este ușor de utilizat DataFrames.iterrows(), rețineți că este posibil să nu funcționeze eficient pe cadre de date mari. În multe cazuri, pentru a obține performanțe mai bune, pot fi utilizate alte opțiuni, cum ar fi apply() sau calcule vectorizate.