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