DataFrame.loc[] è un metodo per DataFrame di­spo­ni­bi­le nella libreria Pandas per Python che serve a se­le­zio­na­re i dati da un DataFrame sulla base di iden­ti­fi­ca­to­ri (label o etichette). In questo modo è possibile estrarre righe e colonne di un DataFrame in modo mirato.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

La sintassi di loc[] in Pandas

Il metodo loc[] richiede come parametro l’as­se­gna­zio­ne dell’etichetta de­si­de­ra­ta. Per il resto la sintassi è molto semplice:

DataFrame.loc[selection]
python

Con loc[] in Pandas la selezione avviene prin­ci­pal­men­te in base alle etichette. Il parametro passato può essere quindi un’etichetta singola, una lista o una slice di etichette. Tuttavia, è anche possibile uti­liz­za­re 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 pre­ce­den­te, serve a se­le­zio­na­re i dati secondo posizioni basate su numeri interi.

L’esempio di codice seguente permette di chiarire le dif­fe­ren­ze. In­nan­zi­tut­to, 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 ri­sul­tan­te si presenta così:

Nome    Età
0   Anna     23
1   Bruno    35
2  Cristiano 30

A questo punto, per estrarre “Anna” dal DataFrame è possibile uti­liz­za­re 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

Ap­pli­ca­zio­ne di DataFrame.loc[] in Pandas

Il metodo loc[] in Pandas ti permette di estrarre sot­toin­sie­mi dal tuo DataFrame. L’estra­zio­ne può ri­guar­da­re 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 ri­sul­tan­te si presenta così:

Nome    Età   Città
0   Anna     23   Roma
1   Bruno    35   Torino
2  Cristiano 30   Milano

Per se­le­zio­na­re i dati della riga con l’indice 1 (che cor­ri­spon­de a Bruno), è possibile uti­liz­za­re 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 se­le­zio­na­re un sot­toin­sie­me di colonne. Il codice seguente permette di se­le­zio­na­re le colonne “Nome” e “Città” per tutte le righe:

nome_città = df.loc[:, ['Nome', 'Città']]
print(nome_città)
python

Il risultato è un sot­toin­sie­me del DataFrame originale:

Nome     Città
0   Anna      Roma
1   Bruno     Torino
2  Cristiano  Milano

Selezione con­di­zio­na­le

Con loc[] in Pandas è anche possibile se­le­zio­na­re le righe in base a una con­di­zio­ne. A tal fine è suf­fi­cien­te uti­liz­za­re 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 pre­ce­den­te 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
Vai al menu prin­ci­pa­le