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.

Le librerie e il dataframe

Iniziamo importando pandas:

import pandas as pd

Adesso 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:

  • True dove la condizione è rispettata

  • False dove non lo è

Ecco come fare:

df['eta'].gt(30)

Ed ecco il risultato:

0    False
1     True
2    False
3     True
4    False

Marco (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 vendite con la colonna target

  • usare 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 uguale

  • lt(): minore

  • le(): minore o uguale

  • eq(): uguale

  • ne(): 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: