Pandas loc[]: selezione di dati dai DataFrame
DataFrame.loc[]
è un metodo per DataFrame disponibile nella libreria Pandas per Python che serve a selezionare i dati da un DataFrame sulla base di identificatori (label o etichette). In questo modo è possibile estrarre righe e colonne di un DataFrame in modo mirato.
- 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 loc[]
in Pandas
Il metodo loc[]
richiede come parametro l’assegnazione dell’etichetta desiderata. Per il resto la sintassi è molto semplice:
DataFrame.loc[selection]
pythonCon loc[]
in Pandas la selezione avviene principalmente in base alle etichette. Il parametro passato può essere quindi un’etichetta singola, una lista o una slice di etichette. Tuttavia, è anche possibile utilizzare degli array booleani.
Confronto fra loc[]
e iloc[]
Mentre DataFrame.loc[]
in Pandas seleziona i dati in base alle etichette, il metodo DataFrame.iloc, dal nome simile al precedente, serve a selezionare i dati secondo posizioni basate su numeri interi.
L’esempio di codice seguente permette di chiarire le differenze. Innanzitutto, creiamo un DataFrame in Pandas:
import pandas as pd
# DataFrame di esempio
data = {'Nome': ['Anna', 'Bruno', 'Cristiano'], 'Età': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
pythonIl DataFrame risultante si presenta così:
Nome Età
0 Anna 23
1 Bruno 35
2 Cristiano 30
A questo punto, per estrarre “Anna” dal DataFrame è possibile utilizzare sia loc[]
che iloc[]
in Pandas. Il risultato è lo stesso, ma il percorso per arrivarci è diverso:
# Con loc per etichetta
print(df.loc[0, 'Nome']) # Risultato: 'Anna'
# Con iloc per posizione
print(df.iloc[0, 0]) # Risultato: 'Anna'
pythonApplicazione di DataFrame.loc[]
in Pandas
Il metodo loc[]
in Pandas ti permette di estrarre sottoinsiemi dal tuo DataFrame. L’estrazione può riguardare righe o colonne, singole o multiple: loc[]
permette quindi di mettere in pratica diversi vari casi d’uso.
Selezione di una singola riga
Nelle parti seguenti è riportato un DataFrame di esempio con i seguenti dati:
import pandas as pd
data = {
'Nome': ['Anna', 'Bruno', 'Cristiano'],
'Età': [23, 35, 30],
'Città': ['Roma', 'Torino', 'Milano']
}
df = pd.DataFrame(data)
print(df)
pythonIl DataFrame risultante si presenta così:
Nome Età Città
0 Anna 23 Roma
1 Bruno 35 Torino
2 Cristiano 30 Milano
Per selezionare i dati della riga con l’indice 1 (che corrisponde a Bruno), è possibile utilizzare loc[]
in Pandas:
dati_bruno = df.loc[1]
print(dati_bruno)
pythonIl risultato è quello previsto:
Nome Bruno
Età 35
Città Torino
Nome: 1, dtype: object
Selezione di più colonne
DataFrame.loc[]
è adatto anche per selezionare un sottoinsieme di colonne. Il codice seguente permette di selezionare le colonne “Nome” e “Città” per tutte le righe:
nome_città = df.loc[:, ['Nome', 'Città']]
print(nome_città)
pythonIl risultato è un sottoinsieme del DataFrame originale:
Nome Città
0 Anna Roma
1 Bruno Torino
2 Cristiano Milano
Selezione condizionale
Con loc[]
in Pandas è anche possibile selezionare le righe in base a una condizione. A tal fine è sufficiente utilizzare gli operatori di confronto booleani. Ad esempio, il codice seguente serve a filtrare tutte le persone che hanno più di 25 anni:
maggiore_di_25 = df.loc[df['Età'] > 25]
print(maggiore_di_25)
pythonLo snippet di codice precedente dà come risultato il seguente DataFrame, che contiene solo i dati delle persone che hanno più di 25 anni:
Nome Età Città
1 Bruno 35 Torino
2 Cristiano 30 Milano