Créer une colonne conditionnelle avec np.where()
La fonction np.where() de NumPy permet de créer des colonnes conditionnelles dans un DataFrame, en appliquant une condition et en attribuant des valeurs spécifiques en fonction de cette condition. Elle fonctionne comme un opérateur ternaire, où vous pouvez spécifier une condition, une valeur si la condition est vraie et une autre valeur si la condition est fausse.
Fonctions :
-
np.where()
La fonction np.where() de NumPy permet de créer une nouvelle colonne conditionnelle dans un DataFrame en fonction d'une condition logique. Elle évalue une condition sur chaque ligne et assigne une valeur si la condition est vraie, et une autre valeur si elle est fausse. Cette méthode est très utile pour effectuer des affectations conditionnelles de manière vectorisée, c'est-à-dire de manière rapide et efficace sans boucle explicite.
Importation :
import numpy as np import pandas as pdAttributs :
Paramètre Type Description Valeur par défaut conditionbool La condition logique à évaluer. Nonevaleur_si_vraiany La valeur assignée si la condition est vraie. Nonevaleur_si_fauxany La valeur assignée si la condition est fausse. NoneExemple de code :
import pandas as pd import numpy as np # Exemple de DataFrame data = { 'produit': ['A', 'B', 'C', 'D'], 'prix': [10, 20, 30, 40] } df = pd.DataFrame(data) # Créer une colonne 'statut' conditionnelle : 'Bon' si prix <= 25, sinon 'Haut' df['statut'] = np.where(df['prix'] <= 25, 'Bon', 'Haut') print(df)
Explication du code :
import pandas as pdimporte la bibliothèque pandas pour manipuler les données sous forme de tableaux (DataFrames).import numpy as npimporte la bibliothèque NumPy pour effectuer des opérations numériques, ici utilisée pour une condition vectorisée.Création d’un DataFrame
Le dictionnaire
datacontient deux colonnes :'produit'et'prix'. Chaque produit est associé à un prix.df = pd.DataFrame(data)convertit ce dictionnaire enDataFrame, structure tabulaire avec index automatique.Ajout d’une colonne conditionnelle avec
np.where()La fonction
np.where(condition, valeur_si_vrai, valeur_si_faux)permet de créer une nouvelle colonne'statut'en fonction d’une condition :- Si le prix est inférieur ou égal à 25, la valeur
'Bon'est attribuée. - Sinon, la valeur
'Haut'est assignée.
df['statut'] = np.where(df['prix'] <= 25, 'Bon', 'Haut')applique donc cette logique à toute la colonne'prix'de manière vectorisée.Affichage du DataFrame
print(df)affiche le DataFrame mis à jour, incluant la colonne'statut'qui indique la catégorie de chaque produit selon son prix. - Si le prix est inférieur ou égal à 25, la valeur