Pandas : filtrer par colonne non égale à des valeurs spécifiques



Vous pouvez utiliser les méthodes suivantes pour filtrer un DataFrame pandas où une colonne n’est pas égale à des valeurs spécifiques :

Méthode 1 : filtrer où la colonne n’est pas égale à une valeur spécifique

#filter rows where team column is not equal to 'Nets'
df_filtered = df[df['team'] != 'Nets']

Méthode 2 : Filtrer lorsque la colonne n’est pas égale à plusieurs valeurs spécifiques

#filter rows where team column is not equal to 'Nets', 'Mavs' or 'Kings'
df_filtered = df[~df['team'].isin(['Nets', 'Mavs', 'Kings'])]

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Mavs', 'Nets', 'Nets', 'Heat', 'Heat', 'Kings'],
                   'points': [22, 28, 35, 34, 29, 28, 23]})

#view DataFrame
print(df)

    team  points
0   Mavs      22
1   Mavs      28
2   Nets      35
3   Nets      34
4   Heat      29
5   Heat      28
6  Kings      23

Exemple 1 : filtre où la colonne n’est pas égale à une valeur spécifique

Nous pouvons utiliser la syntaxe suivante pour filtrer le DataFrame afin de contenir uniquement les lignes où la colonne d’équipe n’est pas égale à « Nets » :

#filter rows where team column is not equal to 'Nets'
df_filtered = df[df['team'] != 'Nets']

#view filtered DataFrame
print(df_filtered)

    team  points
0   Mavs      22
1   Mavs      28
4   Heat      29
5   Heat      28
6  Kings      23

Notez que chaque ligne où le nom de l’ équipe était « Nets » a été filtrée du DataFrame.

Remarque : Le symbole != représente « pas égal » chez les pandas.

Exemple 2 : filtre où la colonne n’est pas égale à plusieurs valeurs spécifiques

Nous pouvons utiliser la syntaxe suivante pour filtrer le DataFrame afin de contenir uniquement les lignes où la colonne d’équipe n’est pas égale à « Nets », « Mavs » ou « Kings » :

#filter rows where team column is not equal to 'Nets', 'Mavs' or 'Kings'
df_filtered = df[~df['team'].isin(['Nets', 'Mavs', 'Kings'])]

#view filtered DataFrame
print(df_filtered)

   team  points
4  Heat      29
5  Heat      28

Notez que chaque ligne où le nom de l’ équipe était « Nets », « Mavs » ou « Kings » a été filtrée du DataFrame.

Remarque : Le symbole ~ représente « non » chez les pandas.

Documentation : Vous pouvez trouver la documentation complète de la fonction pandas isin() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes chez les pandas :

Pandas : Comment ajouter un filtre au tableau croisé dynamique
Pandas : Comment filtrer « Ne contient pas »
Pandas : comment filtrer les lignes contenant une chaîne spécifique

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *