HOWTO · Pandas
Scorri le colonne di un DataFrame Pandas
Questo tutorial mostra come scorrere le colonne di un dataframe
In questa pagina
Per scorrere le colonne di un DataFrame Pandas, esegui un ciclo sul DataFrame per ottenere l’etichetta di ciascuna colonna, quindi usa df[column] per selezionarla come Series. Usa DataFrame.items() per ottenere insieme l’etichetta e la Series, oppure enumerate() se ti serve anche la posizione della colonna.
Scorrere le colonne con un ciclo for e df[column]
Un ciclo su un DataFrame visita le etichette delle colonne. A ogni iterazione, df[column] seleziona la Series associata a quell’etichetta. Questo esempio stampa l’etichetta di ogni colonna seguita dai suoi valori sotto forma di lista Python:
import pandas as pd
df = pd.DataFrame(
{"name": ["Ada", "Lin"], "score": [9, 8]}
)
for column in df:
print(column, df[column].tolist())
name ['Ada', 'Lin']
score [9, 8]
La variabile del ciclo è un’etichetta, come name o score, non il numero di una riga. La Series selezionata conserva l’indice delle righe del DataFrame. Converti i valori in una lista con .tolist() solo se ti serve una lista per il passaggio successivo; .values espone invece una rappresentazione simile a un array.
Scorrere le etichette delle colonne e le Series con DataFrame.items()
DataFrame.items() restituisce ogni etichetta di colonna insieme alla relativa Series. Estrai i due elementi della coppia per lavorare direttamente con entrambi. Questo esempio stampa ogni etichetta e i valori della relativa Series:
import pandas as pd
df = pd.DataFrame(
{"name": ["Ada", "Lin"], "score": [9, 8]}
)
for column_label, series in df.items():
print(column_label, series.tolist())
name ['Ada', 'Lin']
score [9, 8]
Scegli questo schema quando, nello stesso ciclo, l’operazione richiede sia l’etichetta sia la Series corrispondente. Per esempio, puoi applicare a ogni colonna un passaggio separato di formattazione o riepilogo. Se puoi esprimere un calcolo sull’intero DataFrame, un’operazione Pandas vettorializzata può risultare più chiara che elaborare le colonne una alla volta.
Ottenere la posizione e l’etichetta di ogni colonna con enumerate()
Racchiudi df.columns nella funzione integrata di Python enumerate() per associare a ogni etichetta la sua posizione, a partire da zero, nella sequenza delle colonne. L’esempio stampa la posizione, a partire da zero, seguita dall’etichetta di ogni colonna:
import pandas as pd
df = pd.DataFrame(
{"name": ["Ada", "Lin"], "score": [9, 8]}
)
for position, column_label in enumerate(df.columns):
print(position, column_label)
0 name
1 score
In questo esempio, position vale 0 per la prima colonna, 1 per la seconda e così via. È un valore distinto dall’etichetta dell’indice delle righe, che identifica le righe e può contenere valori che non sono interi consecutivi. Usa questa forma quando un’altra operazione richiede sia l’ordine della colonna sia la sua etichetta; se la posizione non serve, usa il ciclo di base o DataFrame.items().