Pandas : extraire la valeur de la colonne en fonction d’une autre colonne



Vous pouvez utiliser la fonction query() dans pandas pour extraire la valeur dans une colonne en fonction de la valeur dans une autre colonne.

Cette fonction utilise la syntaxe de base suivante :

df.query("team=='A'")["points"]

Cet exemple particulier extraira chaque valeur de la colonne des points où la colonne de l’ équipe est égale à A.

Les exemples suivants montrent comment utiliser cette syntaxe en pratique avec le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   'position': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   'points': [11, 28, 10, 26, 6, 25, 29, 12]})

#view DataFrame
print(df)

  team position  points
0    A        G      11
1    A        G      28
2    A        F      10
3    A        F      26
4    B        G       6
5    B        G      25
6    B        F      29
7    B        F      12

Exemple 1 : Extraire les valeurs de colonne en fonction d’une condition remplie

Le code suivant montre comment extraire chaque valeur de la colonne des points où la valeur de la colonne de l’équipe est égale à « A » :

#extract each value in points column where team is equal to 'A'
df.query("team=='A'")["points"]

0    11
1    28
2    10
3    26
Name: points, dtype: int64

Cette fonction renvoie les quatre valeurs de la colonne des points où la valeur correspondante dans la colonne de l’ équipe est égale à « A ».

Exemple 2 : Extraire les valeurs de colonne en fonction de l’une des nombreuses conditions remplies

Le code suivant montre comment extraire chaque valeur de la colonne de points où la valeur de la colonne d’équipe est égale à « A » ou la valeur de la colonne de position est égale à « G » :

#extract each value in points column where team is 'A' or position is 'G'
df.query("team=='A' | position=='G'")["points"]

0    11
1    28
2    10
3    26
4     6
5    25
Name: points, dtype: int64

Cette fonction renvoie les six valeurs de la colonne des points où la valeur correspondante dans la colonne de l’équipe est égale à « A » ou la valeur dans la colonne de position est égale à « G ».

Exemple 3 : extraire les valeurs de colonne en fonction de plusieurs conditions remplies

Le code suivant montre comment extraire chaque valeur de la colonne de points où la valeur de la colonne d’équipe est égale à « A » et la valeur de la colonne de position est égale à « G » :

#extract each value in points column where team is 'A' and position is 'G'
df.query("team=='A' & position=='G'")["points"]

0    11
1    28
Name: points, dtype: int64

Cette fonction renvoie les deux valeurs dans la colonne des points où la valeur correspondante dans la colonne équipe est égale à « A » et la valeur dans la colonne position est égale à « G ».

Ressources additionnelles

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

Pandas : comment sélectionner des colonnes en fonction de la condition
Pandas : supprimer des lignes en fonction de plusieurs conditions
Pandas : mettre à jour les valeurs des colonnes en fonction d’un autre DataFrame

Ajouter un commentaire

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