Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment filtrer Pandas DataFrame à l’aide de colonnes booléennes



Vous pouvez utiliser les méthodes suivantes pour filtrer les lignes d’un DataFrame pandas en fonction des valeurs des colonnes booléennes :

Méthode 1 : filtrer le DataFrame en fonction d’une colonne booléenne

#filter for rows where value in 'my_column' is True
df.loc[df.my_column]

Méthode 2 : filtrer le DataFrame en fonction de plusieurs colonnes booléennes

#filter for rows where value in 'column1' or 'column2' is True
df.loc[df.column1 | df.column2]

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': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
                   'points': [18,20, 25, 40, 34, 32, 19],
                   'all_star': [True, False, True, True, True, False, False],
                   'starter': [False, True, True, True, False, False, False]})

#view DataFrame
print(df)

  team  points  all_star  starter
0    A      18      True    False
1    B      20     False     True
2    C      25      True     True
3    D      40      True     True
4    E      34      True    False
5    F      32     False    False
6    G      19     False    False

Exemple 1 : filtrer le DataFrame en fonction d’une colonne booléenne

Nous pouvons utiliser la syntaxe suivante pour filtrer le DataFrame pandas afin de contenir uniquement les lignes où la valeur dans la colonne all_star est True :

#filter for rows where 'all_star' is True
df.loc[df.all_star]

	team	points	all_star  starter
0	A	18	True	  False
2	C	25	True	  True
3	D	40	True	  True
4	E	34	True	  False

Notez que le DataFrame a été filtré pour contenir uniquement les lignes dont la valeur dans la colonne all_star est True.

Si vous souhaitez plutôt filtrer les lignes où all_star est False, tapez simplement un tilde ( ~ ) devant le nom de la colonne :

#filter for rows where 'all_star' is False
df.loc[~df.all_star]

        team	points	all_star  starter
1	B	20	False	  True
5	F	32	False	  False
6	G	19	False	  False

Le DataFrame a désormais été filtré pour contenir uniquement les lignes dont la valeur dans la colonne all_star est False.

Exemple 2 : filtrer le DataFrame en fonction de plusieurs colonnes booléennes

Nous pouvons utiliser la syntaxe suivante pour filtrer le DataFrame pandas afin de contenir uniquement les lignes où la valeur de la colonne all_star ou de la colonne de démarrage est True :

#filter for rows where 'all_star' or 'starter' is True
df.loc[df.all_star | df.starter]

        team	points	all_star  starter
0	A	18	True	  False
1	B	20	False	  True
2	C	25	True	  True
3	D	40	True	  True
4	E	34	True	  False

Notez que le DataFrame a été filtré pour contenir uniquement les lignes dont la valeur dans la colonne all_star ou starter est True.

Si vous souhaitez filtrer les lignes dont la valeur dans les colonnes all_star et starter est True, vous pouvez utiliser l’opérateur & au lieu de | opérateur:

#filter for rows where 'all_star' and 'starter' is True
df.loc[df.all_star & df.starter]

	team	points	all_star	starter
2	C	25	True	True
3	D	40	True	True

Maintenant que le DataFrame a été filtré pour contenir uniquement les lignes où la valeur dans les colonnes all_star et starter est True.

Connexes : La différence entre loc et iloc chez Pandas

Ressources additionnelles

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

Pandas : sélectionnez des lignes de DataFrame à l’aide d’une série booléenne
Pandas : comment créer une colonne booléenne basée sur la condition
Pandas : Comment convertir des valeurs booléennes en valeurs entières

Ajouter un commentaire

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