L’indicizzazione dei DataFrame in Pandas per Python consente un accesso efficiente e diretto a dati specifici all’interno di un DataFrame. Con l’indice di un DataFrame in Pandas è possibile selezionare righe e colonne specifiche, facilitando molto l’analisi dei dati.

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

Che cosa fa l’indicizzazione?

L’indicizzazione di un DataFrame in Pandas serve a facilitare la selezione di determinati elementi del DataFrame. A tal fine è possibile selezionare righe e colonne in base alle loro posizioni o ai loro nomi. Gli indici possono essere utili per trovare e manipolare i dati più velocemente offrendo una specie di “anagrafe” della struttura dei dati.

La sintassi di DataFrame.index in Pandas

È possibile visualizzare le etichette dell’indice di un DataFrame in Pandas utilizzando la proprietà index. La sintassi si presenta così:

DataFrame.index
python

Sintassi per l’indicizzazione di DataFrame

Esistono diverse possibilità per indicizzare i DataFrame in Pandas. La sintassi per l’indicizzazione varia a seconda dell’operazione desiderata.

Indicizzazione con etichette (nomi delle colonne)

I DataFrame in Pandas possono sfruttare i nomi delle colonne per l’indicizzazione. A tal fine creiamo innanzitutto 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 utilizzare il suo nome insieme all’operatore [] per l’indicizzazione. È sufficiente indicare il nome della colonna nell’operatore di indicizzazione 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 semplicemente specificare i loro nomi nell’operatore di indicizzazione, separandoli con delle virgole.

Indicizzazione con loc[] (nomi delle righe)

Per accedere a una riga specifica del tuo DataFrame devi utilizzare l’indicizzatore loc in Pandas. A questo indicizzatore è possibile assegnare il nome o il numero della riga. Nell’esempio di codice seguente prendiamo in considerazione lo stesso DataFrame già usato in precedenza, 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

Indicizzazione con iloc[] (numeri di riga e colonna)

Esiste un’altra possibilità, probabilmente la più utilizzata, 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 è necessario utilizzare 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 restituisce i valori previsti:

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

Indicizzazione di singoli valori

Se ti interessa soltanto un valore specifico del tuo DataFrame, l’indicizzatore at ti permette di estrarre quel valore specifico in modo rapido ed elegante. È sufficiente 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 utilizzare la colonna “Città” e la prima riga:

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

Come desiderato, il risultato è il luogo di residenza di Bob, ossia “Los Angeles”.

In alternativa è possibile utilizzare l’indicizzatore iat, simile ad at, ma che funziona con la posizione anziché con il nome. Lo stesso risultato dell’esempio di codice precedente si ottiene utilizzando iat come segue:

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

Indicizzazione booleana

È possibile indicizzare i sottoinsiemi di un DataFrame anche in base a una condizione specifica. In questo caso si parla di indicizzazione booleana. La condizione da verificare deve restituire il valore True o False e va inserita direttamente nell’operatore di indicizzazione. 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 condizione 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’indicizzazione booleana puoi utilizzare qualsiasi operatore di confronto booleano che restituisca i valori True o False. Troverai ulteriori informazioni sui diversi operatori Python nell’articolo della nostra guida sull’argomento.

Hai trovato questo articolo utile?
Vai al menu principale