Pandas : comment utiliser la variable dans la fonction query()



Vous pouvez utiliser la syntaxe suivante pour utiliser la fonction query() dans les pandas et référencer un nom de variable :

df.query('team == @team_name')

Cette requête particulière recherche des lignes dans un DataFrame pandas où la colonne team est égale à la valeur enregistrée dans la variable appelée team_name .

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

Exemple : Comment utiliser une variable dans la requête Pandas

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', 'A', 'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C'],
                   'position':['G', 'G', 'F', 'G', 'F', 'F', 'F', 'G', 'G', 'F', 'F'],
                   'points': [22, 25, 24, 39, 34, 20, 18, 17, 20, 19, 22]})

#view DataFrame
print(df)

   team position  points
0     A        G      22
1     A        G      25
2     A        F      24
3     B        G      39
4     B        F      34
5     B        F      20
6     B        F      18
7     C        G      17
8     C        G      20
9     C        F      19
10    C        F      22

Supposons maintenant que nous souhaitions rechercher les lignes où la valeur dans la colonne équipe est égale à C.

Nous pouvons utiliser la syntaxe suivante pour créer une variable appelée team_name qui est égale à « C », puis référencer cette variable dans la fonction query() :

#specify team name to search for
team_name = 'C'

#query for rows where team is equal to team_name
df.query('team == @team_name')

        team	position  points
7	C	G	  17
8	C	G	  20
9	C	F	  19
10	C	F	  22

Notez que la fonction query() renvoie toutes les lignes où la valeur dans la colonne team est égale à C.

Notez également que nous pouvons référencer plusieurs variables dans la fonction query() si nous le souhaitons.

Par exemple, le code suivant montre comment utiliser la fonction query() pour renvoyer toutes les lignes où la valeur dans la colonne team est égale à la valeur d’une variable appelée team_A ou d’une variable appelée team_C :

#create two variables
team_A = 'A' 
team_C = 'C'

#query for rows where team is equal to either of the two variables
df.query('team == @team_A | team == @team_C')

        team	position  points
0	A	G	  22
1	A	G	  25
2	A	F	  24
7	C	G	  17
8	C	G	  20
9	C	F	  19
10	C	F	  22

La requête renvoie toutes les lignes du DataFrame où team est égale aux valeurs stockées dans l’une des deux variables que nous avons spécifiées.

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 *