La funzione iterrows() in Pandas: come eseguire l’iterazione sui DataFrame
La funzione iterrows()
serve a eseguire iterazioni sulle righe di un DataFrame in Pandas. Per ciascuna riga, questa funzione restituisce una tupla di Python composta dall’indice e da una serie che contiene i dati della riga in questione.
- Certificato SSL e protezione DDoS
- Velocità, flessibilità e scalabilità
- Dominio e consulente personale
- 1 anno gratis del gestionale di fatturazione elettronica FlexTax
La sintassi di iterrows()
in Pandas
La sintassi di base di DataFrame.iterrows()
in Pandas è semplice, in quanto questa funzione non richiede alcun parametro:
df.iterrows()
pythonNell’esempio di codice precedente, df
indica il DataFrame su cui eseguire l’iterazione.
Utilizzo della funzione iterrows()
in Pandas
Di solito la funzione DataFrame.iterrows()
è utilizzata quando è necessario elaborare i dati riga per riga. Per questo motivo si trova spesso in combinazione con i cicli for su Python.
Somma dei valori di una colonna
Qui di seguito facciamo ricorso a un DataFrame con le colonne “Nome”, “Età” e “Punteggio”:
import pandas as pd
# Creazione di un DataFrame di esempio
data = {'Nome': ['Anna', 'Bruno', 'Clara'],
'Età': [23, 35, 29],
'Punteggio': [88, 92, 85]}
df = pd.DataFrame(data)
print(df)
pythonIl codice precedente dà il seguente DataFrame come risultato:
Nome Età Punteggio
0 Anna 23 88
1 Bruno 35 92
2 Clara 29 85
Quindi passiamo a calcolare i punteggi. A tal fine è possibile utilizzare DataFrame.iterrows()
in Pandas:
# Calcolo del totale dei punteggi
total_score = 0
for index, row in df.iterrows():
total_score += row['Punteggio']
print(f"Il totale dei punteggi è: {total_score}")
pythonIn questo esempio la funzione iterrows()
di Pandas viene utilizzata per eseguire iterazioni sulle righe e sommare i valori nella colonna “Punteggio” progressivamente. Il risultato si presenta così:
Il totale dei punteggi è: 265
Lavorando con iterrows()
in Pandas è necessario fare attenzione a non modificare mai direttamente i dati su cui si esegue l’iterazione. A seconda del tipo di dati, ciò potrebbe non portare al risultato desiderato e potrebbe causare un comportamento imprevisto.
Modifica condizionale della riga
È possibile utilizzare la funzione iterrows()
anche per applicare condizioni a singole righe del DataFrame. Immagina di voler ottenere i nomi di tutte le persone che hanno più di 30 anni e che si trovano nel DataFrame che già conosciamo:
# Richiama i nomi delle persone che hanno più di 30 anni
names = []
for index, row in df.iterrows():
if row['Età'] > 30:
names.append(row['Nome'])
print(f"Persone con più di 30 anni: {names}")
pythonNel codice di esempio utilizziamo DataFrame.iterrows()
di Pandas per eseguire un’iterazione sulle righe del record di dati. All’interno del ciclo for vengono presi in considerazione i valori della colonna “Età” per memorizzare soltanto i nomi delle persone nella lista di Python names
che hanno più di 30 anni. A tal fine utilizziamo la funzione append()
di Python. Questa procedura dà il seguente risultato:
Persone con più di 30 anni: ['Bruno']
La funzione DataFrames.iterrows()
di Pandas è facile da usare, ma deve essere utilizzata con cautela per il fatto che potrebbe essere meno efficiente con i DataFrame più estesi. In molti casi sono disponibili alternative più performanti, come apply()
o il calcolo vettoriale con Pandas.