Encodage avec map() pour un mapping manuel

L’encodage avec map() permet de réaliser un mappage personnalisé entre les valeurs d’une colonne et un ensemble de valeurs spécifiques. Contrairement à des méthodes automatiques comme LabelEncoder, map() offre la possibilité de définir explicitement comment chaque valeur catégorielle doit être transformée. Cette technique est particulièrement utile lorsque l’on souhaite un contrôle total sur l’encodage, par exemple, lorsqu’on veut associer des étiquettes personnalisées ou convertir des valeurs en fonction de règles spécifiques. Le mappage se fait à l’aide d’un dictionnaire ou d’une fonction appliquée aux valeurs de la colonne.

Fonctions :

  • map({'val1': 0, 'val2': 1})

    La méthode map() permet de transformer les valeurs d'une colonne selon un dictionnaire de correspondances. Elle est particulièrement utile lorsqu'on souhaite effectuer un encodage personnalisé, par exemple pour convertir des valeurs catégorielles spécifiques en valeurs numériques ou dans un autre format. Cela peut être utilisé pour un petit ensemble de catégories ou lorsque l'on souhaite un contrôle total sur l'encodage.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    map() method Applique un mapping sur une série, transformant chaque élément selon le dictionnaire spécifié. N/A

    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)
    
    # Mapping manuel des produits
    df['produit_encoded'] = df['produit'].map({'A': 0, 'B': 1, 'C': 2})
    
    print(df)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, utilisée ici pour manipuler des données sous forme de DataFrame.

    Création d’un DataFrame

    Le dictionnaire data contient deux colonnes : 'produit' (valeurs catégorielles) et 'prix' (valeurs numériques).

    df = pd.DataFrame(data) convertit ce dictionnaire en DataFrame.

    Encodage manuel avec map()

    df['produit_encoded'] = df['produit'].map({'A': 0, 'B': 1, 'C': 2}) applique un mappage manuel pour convertir les catégories de la colonne 'produit' en valeurs numériques :

    • 'A' → 0
    • 'B' → 1
    • 'C' → 2

    Le résultat est stocké dans une nouvelle colonne 'produit_encoded'.

    Affichage du DataFrame

    print(df) affiche le DataFrame avec les colonnes originales et la nouvelle colonne encodée.