Encodage One-Hot avec pd.get_dummies()

L’encodage One-Hot avec pd.get_dummies() permet de transformer des variables catégorielles en une série de colonnes binaires (0 ou 1), où chaque colonne représente une catégorie unique. Cette méthode est particulièrement utile pour les modèles qui ne peuvent pas traiter directement des variables catégorielles, en transformant chaque valeur distincte d’une colonne en une nouvelle colonne binaire. Par exemple, pour une colonne avec les catégories ‘A’, ‘B’ et ‘C’, pd.get_dummies() créera trois nouvelles colonnes, chacune représentant une des catégories avec des valeurs de 1 (si la ligne appartient à cette catégorie) ou 0 (sinon). Cela permet de rendre les données adaptées aux algorithmes d’apprentissage automatique qui exigent des entrées numériques.

Fonctions :

  • pd.get_dummies()

    L'encodage One-Hot est une méthode qui permet de transformer des données catégorielles en une représentation binaire, où chaque catégorie est représentée par une colonne distincte avec une valeur de 1 ou 0. Cela est particulièrement utile pour les modèles de machine learning qui ne peuvent pas traiter directement des variables catégorielles. Chaque valeur unique d'une colonne devient une nouvelle colonne, et chaque ligne reçoit un 1 dans la colonne correspondant à sa catégorie et un 0 dans les autres.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    columns list of str Spécifie les colonnes à encoder. None
    drop_first bool Si True, la première colonne est supprimée pour éviter la multicolinéarité. False
    prefix str, optional Permet de spécifier un préfixe pour le nom des nouvelles colonnes. None
    prefix_sep str, optional Définit un séparateur entre le préfixe et la catégorie dans le nom des colonnes. _

    Exemple de code :

    import pandas as pd
    
    # Exemple de DataFrame
    data = {
        'produit': ['A', 'B', 'C', 'B', 'A', 'C'],
        'prix': [10, 20, 30, 20, 10, 30]
    }
    df = pd.DataFrame(data)
    
    # Encodage One-Hot de la colonne 'produit'
    df_encoded = pd.get_dummies(df, columns=['produit'])
    
    print(df_encoded)

    Explication du code :

    • DataFrame : Le DataFrame contient une colonne 'produit' avec des valeurs catégorielles ('A', 'B', 'C').
    • pd.get_dummies() : Cette fonction transforme la colonne 'produit' en trois nouvelles colonnes :
      • 'produit_A'
      • 'produit_B'
      • 'produit_C' Chaque ligne recevra un 1 dans la colonne correspondant à sa catégorie de produit, et un 0 dans les autres colonnes.

    Remarques :

    • Utilisation avec plusieurs colonnes : Vous pouvez encoder plusieurs colonnes catégorielles en même temps, ce qui est pratique si vous avez plusieurs variables qualitatives dans votre DataFrame.
    • Traitement des valeurs manquantes : Si des valeurs manquantes (NaN) sont présentes dans les colonnes à encoder, elles seront également traitées comme une catégorie à part entière, ce qui peut affecter l'analyse si ce n'est pas ce que vous souhaitez.