L’in­di­ciz­za­zio­ne dei DataFrame in Pandas per Python consente un accesso ef­fi­cien­te e diretto a dati specifici all’interno di un DataFrame. Con l’indice di un DataFrame in Pandas è possibile se­le­zio­na­re righe e colonne spe­ci­fi­che, fa­ci­li­tan­do molto l’analisi dei dati.

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

Che cosa fa l’in­di­ciz­za­zio­ne?

L’in­di­ciz­za­zio­ne di un DataFrame in Pandas serve a fa­ci­li­ta­re la selezione di de­ter­mi­na­ti elementi del DataFrame. A tal fine è possibile se­le­zio­na­re righe e colonne in base alle loro posizioni o ai loro nomi. Gli indici possono essere utili per trovare e ma­ni­po­la­re i dati più ve­lo­ce­men­te offrendo una specie di “anagrafe” della struttura dei dati.

La sintassi di DataFrame.index in Pandas

È possibile vi­sua­liz­za­re le etichette dell’indice di un DataFrame in Pandas uti­liz­zan­do la proprietà index. La sintassi si presenta così:

DataFrame.index
python

Sintassi per l’in­di­ciz­za­zio­ne di DataFrame

Esistono diverse pos­si­bi­li­tà per in­di­ciz­za­re i DataFrame in Pandas. La sintassi per l’in­di­ciz­za­zio­ne varia a seconda dell’ope­ra­zio­ne de­si­de­ra­ta.

In­di­ciz­za­zio­ne con etichette (nomi delle colonne)

I DataFrame in Pandas possono sfruttare i nomi delle colonne per l’in­di­ciz­za­zio­ne. A tal fine creiamo in­nan­zi­tut­to un DataFrame di esempio:

import pandas as pd
# Creazione di un DataFrame di esempio
data = {
    'Nome': ['Alice', 'Bob', 'Charlie'],
    'Età': [25, 30, 35],
    'Città': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)
python

Il DataFrame si presenta così:

Nome  Età      Città
0    Alice   25     New York
1    Bob   30  Los Angeles
2  Charlie   35    Chicago

Se ora desideri accedere a tutti i valori di una colonna specifica, puoi uti­liz­za­re il suo nome insieme all’operatore [] per l’in­di­ciz­za­zio­ne. È suf­fi­cien­te indicare il nome della colonna nell’operatore di in­di­ciz­za­zio­ne sotto forma di stringa di Python:

# Accesso alla colonna “Età”
print(df['Età'])
python

Come risultato otterrai i diversi valori delle età:

0    25
1    30
2    35
Nome: Età, dtype: int64

Se non ti interessa una colonna sola, ma più colonne, puoi sem­pli­ce­men­te spe­ci­fi­ca­re i loro nomi nell’operatore di in­di­ciz­za­zio­ne, se­pa­ran­do­li con delle virgole.

In­di­ciz­za­zio­ne con loc[] (nomi delle righe)

Per accedere a una riga specifica del tuo DataFrame devi uti­liz­za­re l’in­di­ciz­za­to­re loc in Pandas. A questo in­di­ciz­za­to­re è possibile assegnare il nome o il numero della riga. Nell’esempio di codice seguente prendiamo in con­si­de­ra­zio­ne lo stesso DataFrame già usato in pre­ce­den­za, ma in questo caso dobbiamo estrarre la colonna zero con i valori di “Alice”:

print(df.loc[0])
python

Come previsto, il risultato mostra ora i valori relativi ad “Alice”:

Nome        Alice
Età          25
Città    New York
Nome: 0, dtype: object

In­di­ciz­za­zio­ne con iloc[] (numeri di riga e colonna)

Esiste un’altra pos­si­bi­li­tà, pro­ba­bil­men­te la più uti­liz­za­ta, per accedere a elementi specifici del tuo DataFrame, ossia tramite i numeri di riga e colonna. Per lavorare con l’indice numerico dei DataFrame in Pandas è ne­ces­sa­rio uti­liz­za­re la proprietà iloc dei DataFrame.

# Accesso alla riga zero
print(df.iloc[0])
# Accesso al valore nella riga zero e nella prima colonna
print(df.iloc[0, 1])
python

L’utilizzo di iloc[] dà i risultati seguenti e re­sti­tui­sce i valori previsti:

Nome        Alice
Età          25
Città    New York
Nome: 0, dtype: object
25

In­di­ciz­za­zio­ne di singoli valori

Se ti interessa soltanto un valore specifico del tuo DataFrame, l’in­di­ciz­za­to­re at ti permette di estrarre quel valore specifico in modo rapido ed elegante. È suf­fi­cien­te definire la riga e la colonna in questione in cui cercare il valore con i loro nomi. In pratica, se ti interessa trovare il luogo di residenza di Bob, devi uti­liz­za­re la colonna “Città” e la prima riga:

print(df.at(1, 'Città'))
python

Come de­si­de­ra­to, il risultato è il luogo di residenza di Bob, ossia “Los Angeles”.

In al­ter­na­ti­va è possibile uti­liz­za­re l’in­di­ciz­za­to­re iat, simile ad at, ma che funziona con la posizione anziché con il nome. Lo stesso risultato dell’esempio di codice pre­ce­den­te si ottiene uti­liz­zan­do iat come segue:

print(df.iat(1, 2))
python

In­di­ciz­za­zio­ne booleana

È possibile in­di­ciz­za­re i sot­toin­sie­mi di un DataFrame anche in base a una con­di­zio­ne specifica. In questo caso si parla di in­di­ciz­za­zio­ne booleana. La con­di­zio­ne da ve­ri­fi­ca­re deve re­sti­tui­re il valore True o False e va inserita di­ret­ta­men­te nell’operatore di in­di­ciz­za­zio­ne. Per estrarre solo le righe in cui la persona ha più di 30 anni è possibile procedere come segue:

# Selezione delle righe in cui l'età è maggiore di 30
print(df[df[Età] > 30])
python

Come previsto, la con­di­zio­ne sopra indicata si applica solo a “Charlie”, che ha 35 anni. Il risultato è quindi:

Nome  Età    Città
2  Charlie   35    Chicago
N.B.

Ricorda che con l’in­di­ciz­za­zio­ne booleana puoi uti­liz­za­re qualsiasi operatore di confronto booleano che re­sti­tui­sca i valori True o False. Troverai ulteriori in­for­ma­zio­ni sui diversi operatori Python nell’articolo della nostra guida sull’argomento.

Vai al menu prin­ci­pa­le