Comment utiliser la fonction Where() dans Pandas (avec exemples)



La fonction Where() peut être utilisée pour remplacer certaines valeurs dans un DataFrame pandas.

Cette fonction utilise la syntaxe de base suivante :

df.where(cond, other=nan)

Pour chaque valeur d’un DataFrame pandas où cond est True, la valeur d’origine est conservée.

Pour chaque valeur où cond est False, la valeur d’origine est remplacée par la valeur spécifiée par l’ autre argument.

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

import pandas as pd

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

#view DataFrame
df

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

Exemple 1 : Remplacer les valeurs dans l’intégralité du DataFrame

Le code suivant montre comment utiliser la fonction Where() pour remplacer toutes les valeurs qui ne remplissent pas une certaine condition dans un DataFrame pandas entier par une valeur NaN.

#keep values that are greater than 7, but replace all others with NaN
df.where(df>7)

	points	assists	rebounds
0	25	NaN	11.0
1	12	NaN	8.0
2	15	NaN	10.0
3	14	9.0	NaN
4	19	12.0	NaN
5	23	9.0	NaN
6	25	9.0	9.0
7	29	NaN	12.0

Nous pouvons également utiliser l’ autre argument pour remplacer les valeurs par autre chose que NaN.

#keep values that are greater than 7, but replace all others with 'low'
df.where(df>7, other='low')

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

Exemple 2 : remplacer les valeurs dans une colonne spécifique de DataFrame

Le code suivant montre comment utiliser la fonction Where() pour remplacer toutes les valeurs qui ne remplissent pas une certaine condition dans une colonne spécifique d’un DataFrame.

#keep values greater than 15 in 'points' column, but replace others with 'low'
df['points'] = df['points'].where(df['points']>15, other='low')

#view DataFrame
df

	points	assists	rebounds
0	25	5	11
1	low	7	8
2	low	7	10
3	low	9	6
4	19	12	6
5	23	9	5
6	25	9	9
7	29	4	12

Vous pouvez trouver la documentation complète en ligne de la fonction pandaswhere() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans les pandas :

Comment utiliser la fonction décrire() dans Pandas
Comment utiliser la fonction idxmax() dans Pandas
Comment appliquer une fonction aux colonnes sélectionnées dans Pandas

Ajouter un commentaire

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