Pandas : comment utiliser la méthode isin() avec la méthode query()



Souvent, vous souhaiterez peut-être utiliser la fonction isin() dans la méthode query() dans les pandas pour filtrer les lignes d’un DataFrame où une colonne contient une valeur dans une liste.

Vous pouvez utiliser la syntaxe suivante pour ce faire :

df.query('team in ["A", "B", "D"]')

Cette requête particulière filtre les lignes d’un DataFrame pandas où la colonne d’équipe est égale à A, B ou D.

Remarque : Nous devons utiliser in à la place de isin lors de l’utilisation de la méthode pandas query() .

L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.

Exemple : utilisez la méthode query() pour filtrer les valeurs dans la liste

Supposons que nous ayons le DataFrame pandas suivant qui contient des informations sur divers joueurs de basket-ball :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'E'],
                   'points': [18, 22, 19, 14, 14, 11, 20, 28],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print(df)

  team  points  assists  rebounds
0    A      18        5        11
1    A      22        7         8
2    B      19        7        10
3    B      14        9         6
4    C      14       12         6
5    C      11        9         5
6    D      20        9         9
7    E      28        4        12

Supposons maintenant que nous souhaitions rechercher les lignes où la valeur dans la colonne d’équipe est égale à A, B ou D.

Nous pouvons utiliser la syntaxe suivante pour ce faire :

#query for rows where team is in list of specific teams
df.query('team in ["A", "B", "D"]')

	team	points	assists	rebounds
0	A	18	5	11
1	A	22	7	8
2	B	19	7	10
3	B	14	9	6
6	D	20	9	9

Notez que la fonction query() renvoie toutes les lignes où la valeur dans la colonne d’équipe est égale à A, B ou D.

Notez également que nous pouvons stocker une liste de noms d’équipes dans une variable, puis référencer la variable dans la fonction query() à l’aide de l’opérateur @ :

#create variable to hold specific team names
team_names = ["A", "B", "D"]

#query for rows where team is equal to a team name in team_names variable
df.query('team in @team_names')

	team	points	assists	rebounds
0	A	18	5	11
1	A	22	7	8
2	B	19	7	10
3	B	14	9	6
6	D	20	9	92

La requête renvoie toutes les lignes du DataFrame où team est égal à l’un des noms d’équipe stockés dans la variable team_names .

Notez que les résultats de cette requête correspondent à ceux de l’exemple précédent.

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

Ressources additionnelles

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

Pandas : Comment filtrer les lignes en fonction de la longueur de la chaîne
Pandas : Comment supprimer des lignes en fonction de la condition
Pandas : Comment utiliser le filtre « NON IN »

Ajouter un commentaire

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