Quando analizzi un dataframe, spesso ti serve capire al volo se un valore supera una certa soglia.
gt() (che sta per greater than) risponde esattamente a questa domanda, restituendo un risultato booleano per ogni elemento.
In questa micro-lezione vedremo come usarlo.
Il programma della micro-lezione
Le librerie e il dataframe
Iniziamo importando pandas:
import pandas as pdAdesso creiamo un dataframe di esempio (puoi saltare questo passaggio se hai già i tuoi dati):
df = pd.DataFrame({
'nome': ['Anna', 'Marco', 'Giulia', 'Luca', 'Sara'],
'eta': [24, 35, 29, 41, 19],
'vendite': [1200, 3400, 2100, 4800, 980],
'target': [1500, 3000, 2000, 4000, 1000]
})Ed ecco il nostro dataframe:
nome | eta | vendite | target |
|---|---|---|---|
Anna | 24 | 1200 | 1500 |
Marco | 35 | 3400 | 3000 |
Giulia | 29 | 2100 | 2000 |
Luca | 41 | 4800 | 4000 |
Sara | 19 | 980 | 1000 |
L’uso base di gt()
gt() applicato a una Series (o ad una colonna del dataframe) restituisce una Series di valori booleani:
Truedove la condizione è rispettataFalsedove non lo è
Ecco come fare:
df['eta'].gt(30)Ed ecco il risultato:
0 False
1 True
2 False
3 True
4 FalseMarco (35) e Luca (41) hanno un'età superiore a 30: per loro il risultato è True.
Attenzione!
gt() sta per strettamente maggiore (>), non maggiore o uguale. Se ti serve includere anche il valore di soglia, usa ge() (greater than or equal).
Perché usare gt() ?
Nell’esempio appena fatto, abbiamo applicato gt(30) alla colonna “età”. Questo è l’equivalente di scrivere > 30 con la sintassi tradizionale. La differenza è che gt() è un metodo e si integra meglio nel chaining.
Filtrare le righe con gt()
Il vero vantaggio di gt() emerge quando usi il suo risultato booleano per filtrare il dataframe.
Per esempio, teniamo solo le righe dove le vendite superano 2000:
df[df['vendite'].gt(2000)]Puoi combinare più condizioni con & (and) o | (or). Per esempio, vendite superiori a 2000 e età superiore a 30:
df[df['vendite'].gt(2000) & df['eta'].gt(30)]Confrontare le colonne con gt()
Una delle applicazioni più utili di gt() è il confronto di due colonne tra di loro. Per esempio, possiamo:
confrontare la colonna
venditecon la colonnatargetusare il risultato di questo confronto per aggiungere una colonna booleana al dataframe
Ci basterà scrivere:
df['target_superato'] = df['vendite'].gt(df['target'])Ed ecco qui il risultato:
nome | eta | vendite | target | target_superato |
|---|---|---|---|---|
Anna | 24 | 1200 | 1500 | False |
Marco | 35 | 3400 | 3000 | True |
Giulia | 29 | 2100 | 2000 | True |
Luca | 41 | 4800 | 4000 | True |
Sara | 19 | 980 | 1000 | False |
Conclusione
gt() è un metodo semplice ma versatile: restituisce una maschera booleana che puoi usare per filtrare il tuo dataframe o creare nuove colonne.
Se hai bisogno di varianti, ricorda che pandas offre anche:
ge(): maggiore o ugualelt(): minorele(): minore o ugualeeq(): ugualene(): diverso
Tutti questi metodi funzionano come gt().
Alla prossima micro-lezione 👋
Se vuoi imparare la data analysis con micro-lezioni che vanno dritto al sodo, iscriviti alla newsletter:
