Pandas : comment filtrer les séries par valeur
Vous pouvez utiliser les méthodes suivantes pour filtrer les valeurs dans une série pandas :
Méthode 1 : filtrer les valeurs en fonction d’une seule condition
#filter for values equal to 7 my_series.loc[lambda x : x == 7]
Méthode 2 : filtrer les valeurs à l’aide de la condition « OU »
#filter for values less than 10 or greater than 20 my_series.loc[lambda x : (x < 10) | (x > 20)]
Méthode 3 : filtrer les valeurs à l’aide de la condition « ET »
#filter for values greater than 10 and less than 20 my_series.loc[lambda x : (x > 10) & (x < 20)]
Méthode 4 : filtrer les valeurs contenues dans la liste
#filter for values that are equal to 4, 7, or 23 my_series[my_series.isin([4, 7, 23])]
Ce tutoriel explique comment utiliser chaque méthode en pratique avec les séries pandas suivantes :
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
Exemple 1 : Filtrer les valeurs en fonction d’une condition
Le code suivant montre comment filtrer la série pandas pour les valeurs égales à 7 :
#filter for values equal to 7 data.loc[lambda x : x == 7] 1 7 2 7 dtype: int64
Nous pouvons également filtrer les valeurs non égales à 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
Exemple 2 : Filtrer les valeurs à l’aide de la condition « OU »
Le code suivant montre comment filtrer la série pandas pour les valeurs inférieures à 10 ou supérieures à 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
Exemple 3 : Filtrer les valeurs à l’aide de la condition « ET »
Le code suivant montre comment filtrer la série pandas pour les valeurs supérieures à 10 et inférieures à 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
Exemple 4 : filtrer les valeurs contenues dans la liste
Le code suivant montre comment filtrer la série pandas pour les valeurs contenues dans une liste :
#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
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations de filtrage courantes en Python :
Comment filtrer les lignes Pandas DataFrame qui contiennent une chaîne spécifique
Comment filtrer un DataFrame Pandas sur plusieurs conditions
Comment utiliser le filtre « NON IN » dans Pandas DataFrame