La fonction Python Pandas DataFrame.where() sert à effectuer des manipulations de données conditionnelles dans des DataFrames. Elle permet aux programmeurs de remplacer ou de masquer des valeurs dans un Pandas DataFrame en se basant sur une condition spécifique.

Hébergement Web
Hébergement Web flexible, performant et sûr
  • Certificat SSL et protection DDoS
  • Sauvegarde et restauration des données
  • Assistance 24/7 et conseiller personnel

Syntaxe de Pandas DataFrame.where()

La fonction where() accepte jusqu’à cinq paramètres et suit la syntaxe de base montrée ci-dessous :

DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None)
python

Dans ce cas, la fonction est appliquée à un DataFrame et seules les valeurs qui remplissent la condition spécifiée (cond) restent inchangées. Toutes les autres valeurs sont remplacées par les valeurs spécifiées dans other.

Paramètres pertinents

Pandas DataFrame.where() accepte différents paramètres qui permettent une adaptation flexible de la manipulation des données :

Paramètres Description Valeur par défaut
cond Condition qui doit être remplie pour que les valeurs soient conservées dans le DataFrame Obligatoire
other Valeur de remplacement pour les valeurs ne remplissant pas la condition NaN
inplace Si True, l’opération est effectuée directement sur le DataFrame existant False
axis Indique si l’opération doit être appliquée sur les lignes (0) ou les colonnes (1) None
level Indique à quel niveau du multi-index la condition doit être appliquée None

Application de Pandas DataFrame.where()

La fonction where() peut être utilisée dans de nombreuses situations où des manipulations de données conditionnelles sont nécessaires. Il s’agit par exemple du nettoyage de données ou de la création de nouvelles colonnes basées sur des conditions.

Remplacement conditionnel de valeurs

Supposons que vous ayez un DataFrame contenant les résultats de vente d’une entreprise et que vous souhaitiez afficher uniquement les résultats positifs. Tous les résultats négatifs doivent être remplacés par 0. Cela peut être fait avec Pandas DataFrame.where(). Tout d’abord, un DataFrame est créé :

import pandas as pd
# Création d’un DataFrame d’exemple
data = {
    'Région': ['Nord', 'Sud', 'Est', 'Ouest'],
    'Ventes_Q1': [15000, -5000, 3000, -1000],
    'Ventes_Q2': [20000, 25000, -7000, 5000]
}
df = pd.DataFrame(data)
print(df)
python

Le code ci-dessus renvoie le DataFrame suivant :

Région    Ventes_Q1    Ventes_Q2
0    Nord         15000         20000
1    Sud          -5000         25000
2    Est            3000         -7000
3    Ouest        -1000          5000

En appelant where(), vous pouvez maintenant remplacer toutes les valeurs négatives par 0. Pour cela, vous devez vous assurer que seules les colonnes contenant des valeurs numériques sont prises en compte, sinon la comparaison ne fonctionnera pas.

# Remplacement conditionnel de valeurs
df_positive = df.copy()
df_positive[['Ventes_Q1', 'Ventes_Q2']] = df[['Ventes_Q1', 'Ventes_Q2']].where(df[['Ventes_Q1', 'Ventes_Q2']] > 0, 0)
print(df_positive)
python

Le DataFrame résultant df_positive ne contient plus que les résultats positifs des ventes et remplace toutes les valeurs négatives par 0 comme souhaité :

Région    Ventes_Q1    Ventes_Q2
0    Nord         15000         20000
1    Sud              0          25000
2    Est          3000                0
3    Ouest          0            5000

Masquage conditionnel de valeurs

Pandas DataFrame.where() peut également être utilisé pour masquer des valeurs, c’est-à-dire ne rendre visibles que certaines parties d’un DataFrame. Dans ce qui suit, le DataFrame ne doit afficher que les valeurs supérieures à un certain seuil (dans ce cas, 10000). Ici encore, vous devez vous assurer que seules les colonnes numériques sont prises en compte :

# N’afficher que les valeurs supérieures à 10 000
df_masked = df.copy()
df_masked[['Ventes_Q1', 'Ventes_Q2']] = df[['Ventes_Q1', 'Ventes_Q2']].where(df[['Ventes_Q1', 'Ventes_Q2']] > 10000)
print(df_masked)
python

Dans ce cas, le DataFrame résultant df_masked n’affiche que les valeurs supérieures à 10000. Toutes les autres valeurs sont affichées comme NaN :

Région    Ventes_Q1    Ventes_Q2
0    Nord         15000.0     20000.0
1    Sud              NaN      25000.0
2    Est              NaN            NaN
3    Ouest          NaN            NaN

La fonction where() de Pandas est donc un outil puissant pour filtrer, transformer et nettoyer efficacement des données dans un DataFrame, tout en préservant sa structure originale.

Cet article vous a-t-il été utile ?
Aller au menu principal