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 pd
Attributs :
Paramètre Type Description Valeur par défaut condition
bool La condition logique à évaluer. None
valeur_si_vrai
any La valeur assignée si la condition est vraie. None
valeur_si_faux
any La valeur assignée si la condition est fausse. None
Exemple 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 pd
importe la bibliothèque pandas pour manipuler les données sous forme de tableaux (DataFrames).import numpy as np
importe 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
data
contient 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