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)
    Résultat du code

    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 en DataFrame, 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.