Encodage avec pd.Categorical().codes

L’encodage avec pd.Categorical().codes permet de transformer une colonne de valeurs catégorielles en des codes numériques correspondant à chaque catégorie unique. Cette méthode est particulièrement utile lorsqu’il est nécessaire de travailler avec des données catégorielles dans des modèles qui attendent des entrées numériques, tout en conservant l’information relative aux catégories sous-jacentes. pd.Categorical() permet de convertir une colonne en une catégorie avec un ordre implicite ou explicite, et l’attribut .codes fournit un tableau des indices des catégories pour chaque élément. Ce type d’encodage est rapide et efficace pour des données avec un nombre limité de catégories distinctes.

Fonctions :

  • pd.Categorical().codes

    La méthode pd.Categorical().codes permet d’encoder les valeurs d’une colonne sous forme de codes numériques. Chaque valeur unique de la colonne sera associée à un entier, en fonction de l’ordre d’apparition des valeurs uniques dans la colonne. Cela est particulièrement utile pour transformer des données catégorielles en valeurs numériques, ce qui est nécessaire pour certaines analyses statistiques ou pour les modèles de machine learning qui nécessitent des valeurs numériques comme entrée.

    Importation :

    import pandas as pd

    Attributs :

    Paramètre Type Description Valeur par défaut
    astype('category') method Convertit une colonne en type catégoriel. N/A
    cat.codes Series Retourne les codes numériques associés aux valeurs uniques de la colonne catégorielle. 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)
    
    # Encodage de la colonne 'produit' en valeurs numériques
    df['produit_encoded'] = df['produit'].astype('category').cat.codes
    
    print(df)
    Résultat du code

    Explication du code :

    import pandas as pd importe la bibliothèque pandas, qui permet de manipuler les 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) transforme ce dictionnaire en un DataFrame que l'on peut manipuler.

    Encodage de la colonne 'produit' en valeurs numériques

    df['produit_encoded'] = df['produit'].astype('category').cat.codes utilise la méthode astype('category') pour convertir la colonne 'produit' en type catégoriel. Ensuite, cat.codes transforme ces catégories en codes numériques :

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

    Les codes numériques sont stockés dans la nouvelle colonne 'produit_encoded'.

    Affichage du DataFrame

    print(df) affiche le DataFrame mis à jour avec la colonne 'produit_encoded' qui contient les codes numériques des produits.