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.

Il tuo web hosting come mai prima d'ora
  • 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]
python

Con 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)
python

Il 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'
python

Applicazione 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)
python

Il 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)
python

Il 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à)
python

Il 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)
python

Lo 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
Hai trovato questo articolo utile?
Vai al menu principale