Filtrare dati da dataframe di Pandas
Un DataFrame è una struttura dati bidimensionale simile a una tabella, in cui le righe rappresentano i record e le colonne rappresentano i campi o le variabili.
I DataFrame di Pandas possono contenere dati eterogenei e offrono una vasta gamma di funzionalità per la manipolazione e l'analisi dei dati.
Filtrare i dati è una delle operazioni più comuni in Pandas, necessaria quando si vuole analizzare solo una parte specifica del dataset. Ad esempio, si potrebbe voler esaminare solo i dati relativi a un certo intervallo di date, o filtrare i record che soddisfano una determinata condizione (come tutti i prodotti con un prezzo superiore a una certa soglia).
Esistono diversi modi per filtrare i dati in un DataFrame di Pandas. I metodi più comuni includono:
Filtraggio per condizione: filtrare i dati in base a una o più condizioni.
Filtraggio per etichette: utilizzare il metodo loc per filtrare i dati in base ai nomi delle righe o colonne.
Filtraggio per indici: utilizzare il metodo iloc per filtrare i dati in base alle posizioni degli indici.
Filtraggio per condizione
Il filtraggio per condizione è uno dei metodi più comuni in Pandas. Consiste nel creare una maschera booleana che viene poi applicata al DataFrame per estrarre le righe che soddisfano la condizione.
Supponiamo di avere un DataFrame contenente informazioni sui dipendenti di un'azienda e vogliamo filtrare i dipendenti con un salario superiore a 50.000 euro.
import pandas as pd
# Creazione di un DataFrame di esempio
data = {
'Nome': ['Luca', 'Marta', 'Giovanni', 'Anna'],
'Salario': [48000, 52000, 61000, 45000],
'Dipartimento': ['IT', 'HR', 'IT', 'Finance']
}
df = pd.DataFrame(data)
# Filtraggio dei dipendenti con salario superiore a 50.000
filtrati = df[df['Salario'] > 50000]
print(filtrati)
Pandas permette anche di filtrare i dati utilizzando più condizioni combinate con operatori logici come & (and) e | (or).
Filtraggio per etichette con il metodo loc
Il metodo loc è utile per filtrare righe e colonne in base ai loro nomi o etichette. Si può utilizzare per selezionare un sottoinsieme di dati specificando i nomi delle righe e delle colonne che si desidera mantenere.
# Filtraggio per etichetta
filtrati = df.loc[df['Salario'] > 50000, ['Nome', 'Dipartimento']]
print(filtrati)
Filtraggio per indici con il metodo iloc
Quando si desidera filtrare dati in base alla posizione degli indici, si utilizza iloc. Questo metodo permette di selezionare righe e colonne in base ai loro numeri di indice.
# Filtraggio per indici
filtrati = df.iloc[0:2, :]
print(filtrati)