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 :
import pandas as pd
importe la bibliothèque pandas, qui permet de manipuler les données sous forme deDataFrame
.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 unDataFrame
que l'on peut manipuler.Encodage de la colonne
'produit'
en valeurs numériquesdf['produit_encoded'] = df['produit'].astype('category').cat.codes
utilise la méthodeastype('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 leDataFrame
mis à jour avec la colonne'produit_encoded'
qui contient les codes numériques des produits.