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)

    Explication du code :

    • DataFrame : Le DataFrame contient une colonne 'produit' avec des valeurs catégorielles ('A', 'B', 'C').
    • astype('category') : Convertit la colonne 'produit' en type catégoriel, ce qui permet d’utiliser les fonctionnalités des catégories dans Pandas.
    • cat.codes : Retourne un tableau de codes numériques associés à chaque catégorie de la colonne. L'ordre des catégories sera celui de l’apparition des valeurs uniques dans la colonne.
      • 'A' sera encodé avec 0
      • 'B' sera encodé avec 1
      • 'C' sera encodé avec 2

    Remarques :

    • Catégories ordonnées : Si vous travaillez avec des catégories ordonnées (par exemple, 'faible', 'moyenne', 'élevée'), vous pouvez spécifier cet ordre dans pd.Categorical() en utilisant l'argument ordered=True.
    • Utilisation dans le machine learning : Les codes numériques peuvent être utilisés directement dans des modèles de machine learning qui ne peuvent pas traiter les variables catégorielles sous forme de chaînes de caractères.