Selezione e indicizzazione dataframe di Pandas
Un DataFrame è una struttura dati bidimensionale in Pandas, simile a una tabella SQL o un foglio di calcolo Excel. Ogni colonna in un DataFrame è una Series di Pandas, e può contenere dati di diverso tipo, come numeri, stringhe, o date.
Le righe e le colonne sono indicizzate, permettendo una facile selezione e manipolazione dei dati.
Metodi di selezione e indicizzazione di un DataFrame Pandas
Ci sono vari modi per selezionare e indicizzare un DataFrame in Pandas. A seconda delle esigenze, si possono usare indici posizionali, nomi di colonne, filtri booleani, o metodi come loc e iloc. Vediamo nel dettaglio ciascuno di questi metodi.
Uno dei modi più semplici per accedere ai dati in un DataFrame è selezionare una o più colonne.
import pandas as pd
# Creazione di un DataFrame di esempio
data = {
'Nome': ['Anna', 'Marco', 'Giulia', 'Luca'],
'Età': [25, 30, 22, 35],
'Città': ['Roma', 'Milano', 'Napoli', 'Torino']
}
df = pd.DataFrame(data)
# Selezione di una colonna
nome_colonna = df['Nome']
print(nome_colonna)
# Selezione di più colonne
nome_eta = df[['Nome', 'Età']]
print(nome_eta)
Selezionare righe con il metodo loc di Pandas
Il metodo .loc[] permette di selezionare righe utilizzando etichette o una condizione booleana. È particolarmente utile quando si lavora con indici personalizzati o quando si vuole selezionare dati basati su una condizione.
# Selezione di una riga per etichetta
prima_riga = df.loc[0]
print(prima_riga)
# Selezione di righe con una condizione
eta_sopra_25 = df.loc[df['Età'] > 25]
print(eta_sopra_25)
Selezionare righe e colonne con il metodo iloc di Pandas
Il metodo .iloc[] permette di selezionare dati basandosi su indici posizionali, cioè utilizzando numeri interi che indicano la posizione delle righe o delle colonne.
# Selezione della prima riga e prima colonna
prima_riga_colonna = df.iloc[0, 0]
print(prima_riga_colonna)
# Selezione di un intervallo di righe e colonne
intervallo = df.iloc[0:2, 0:2]
print(intervallo)
Selezionare sottoinsiemi di un DataFrame con i metodi at e iat
Per accedere rapidamente a un singolo elemento, Pandas offre i metodi .at[] e .iat[], che sono simili a .loc[] e .iloc[], ma più efficienti quando si tratta di selezionare singoli valori.
# Accesso a un singolo elemento con etichetta
elemento = df.at[1, 'Nome']
print(elemento)
# Accesso a un singolo elemento con indice posizionale
elemento_rapido = df.iat[1, 0]
print(elemento_rapido)
Pandas permette anche di filtrare i dati in un DataFrame utilizzando condizioni booleane. Questo metodo è molto potente e flessibile per estrarre sottoinsiemi di dati basati su criteri specifici.
# Filtraggio delle righe dove l'età è maggiore di 30
sopra_30 = df[df['Età'] > 30]
print(sopra_30)