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