Pandas : sélectionnez les lignes où la valeur apparaît dans n’importe quelle colonne



Souvent, vous souhaiterez peut-être sélectionner les lignes d’un DataFrame pandas dans lesquelles une certaine valeur apparaît dans l’une des colonnes.

Heureusement, cela est facile à faire en utilisant la fonction .any pandas. Ce tutoriel explique plusieurs exemples d’utilisation pratique de cette fonction.

Exemple 1 : Rechercher une valeur dans n’importe quelle colonne

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]})

#view DataFrame
print(df)

   points  assists  rebounds
0      25        5        11
1      12        7         8
2      15        7        10
3      14        9         6
4      19       12         6

La syntaxe suivante montre comment sélectionner toutes les lignes du DataFrame qui contiennent la valeur 25 dans l’une des colonnes :

df[df.isin([25]).any(axis=1)]

        points	assists	rebounds
0	25	5	11

La syntaxe suivante montre comment sélectionner toutes les lignes du DataFrame qui contiennent les valeurs 25, 9 ou 6 dans l’une des colonnes :

df[df.isin([25, 9, 6]).any(axis=1)]

        points	assists	rebounds
0	25	5	11
3	14	9	6
4	19	12	6

Exemple 2 : Rechercher un caractère dans n’importe quelle colonne

Supposons que nous ayons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'position': ['G', 'G', 'F', 'F', 'C']})

#view DataFrame
print(df)

   points  assists position
0      25        5        G
1      12        7        G
2      15        7        F
3      14        9        F
4      19       12        C

La syntaxe suivante montre comment sélectionner toutes les lignes du DataFrame qui contiennent le caractère G dans l’une des colonnes :

df[df.isin(['G']).any(axis=1)]


points	assists	position
0	25	5	G
1	12	7	G

La syntaxe suivante montre comment sélectionner toutes les lignes du DataFrame qui contiennent les valeurs G ou C dans l’une des colonnes :

df[df.isin(['G', 'C']).any(axis=1)] 

points	assists	position
0	25	5	G
1	12	7	G
4	19	12	C

Ressources additionnelles

Comment filtrer un DataFrame Pandas sur plusieurs conditions
Comment trouver des valeurs uniques dans plusieurs colonnes dans Pandas
Comment obtenir des numéros de ligne dans un DataFrame Pandas

Ajouter un commentaire

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