Panda: come filtrare le serie per valore


È possibile utilizzare i seguenti metodi per filtrare i valori in una serie panda:

Metodo 1: filtra i valori in base a una singola condizione

 #filter for values equal to 7
my_series. loc [ lambda x:x == 7]

Metodo 2: filtrare i valori utilizzando la condizione “OR”.

 #filter for values less than 10 or greater than 20
my_series. loc [ lambda x: (x < 10) | (x > 20)]

Metodo 3: filtrare i valori utilizzando la condizione “AND”.

 #filter for values greater than 10 and less than 20
my_series. loc [ lambda x: (x > 10) & (x < 20)] 

Metodo 4: filtra i valori contenuti nell’elenco

 #filter for values that are equal to 4, 7, or 23
my_series[my_series. isin ([4, 7, 23])]

Questo tutorial spiega come utilizzare ciascun metodo nella pratica con le seguenti serie di panda:

 import pandas as pd

#create pandas Series
data = pd. Series ([4, 7, 7, 12, 19, 23, 25, 30])

#view pandas Series
print (data)

0 4
1 7
2 7
3 12
4 19
5 23
6 25
7 30
dtype: int64

Esempio 1: filtrare i valori in base a una condizione

Il codice seguente mostra come filtrare la serie panda per valori pari a 7:

 #filter for values equal to 7
data. loc [ lambda x:x == 7]

1 7
2 7
dtype: int64

Possiamo filtrare anche valori diversi da 7:

 #filter for values not equal to 7
data. loc [ lambda x:x != 7]

0 4
3 12
4 19
5 23
6 25
7 30
dtype: int644

Esempio 2: filtrare i valori utilizzando la condizione “OR”.

Il codice seguente mostra come filtrare la serie panda per valori inferiori a 10 o superiori a 20:

 #filter for values less than 10 or greater than 20
data. loc [ lambda x: (x < 10) | (x > 20)]

0 4
1 7
2 7
5 23
6 25
7 30
dtype: int64

Esempio 3: filtrare i valori utilizzando la condizione “AND”.

Il codice seguente mostra come filtrare le serie panda per valori maggiori di 10 e minori di 20:

 #filter for values greater than 10 and less than 20
data. loc [ lambda x: (x > 10) & (x < 20)]

3 12
4 19
dtype: int64

Esempio 4: filtrare i valori contenuti nella lista

Il codice seguente mostra come filtrare le serie panda per i valori contenuti in un elenco:

 #filter for values that are equal to 4, 7, or 23
data[data. isin ([4, 7, 23])]

0 4
1 7
2 7
5 23
dtype: int64

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni di filtraggio comuni in Python:

Come filtrare le righe Pandas DataFrame che contengono una stringa specifica
Come filtrare un Pandas DataFrame su più condizioni
Come utilizzare il filtro “NOT IN” in Pandas DataFrame

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *