Encodage ordinal d’un DataFrame
Les variables catégorielles peuvent être encodées selon deux techniques : le one-hot encoding et l’encodage ordinal. Avec le one-hot encoding, chaque catégorie devient une colonne ; pour chaque ligne, la colonne correspondant à la catégorie vaut 1 et les autres 0. Avec l’encodage ordinal, les catégories sont associées à des entiers à partir de 0 jusqu’au nombre de catégories.
Dans cet exercice, vous allez parcourir toutes les colonnes du DataFrame users pour encoder ordinalement les catégories. Vous allez également conserver un encodeur par colonne dans un dictionnaire ordinal_enc_dict afin de pouvoir reconvertir les colonnes encodées vers les catégories d’origine.
Cet exercice fait partie du cours
Gérer les données manquantes en Python
Instructions
- Définissez un dictionnaire vide
ordinal_enc_dict. - Créez un objet Ordinal Encoder pour chaque colonne.
- Sélectionnez les valeurs non nulles de la colonne dans users et encodez-les.
- Réaffectez les valeurs encodées aux valeurs non nulles de chaque colonne (
col_name) dans users.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create an empty dictionary ordinal_enc_dict
ordinal_enc_dict = ___
for col_name in users:
# Create Ordinal encoder for col
ordinal_enc_dict[col_name] = ___
col = users[col_name]
# Select non-null values of col
col_not_null = ___
reshaped_vals = col_not_null.values.reshape(-1, 1)
encoded_vals = ordinal_enc_dict[col_name].fit_transform(reshaped_vals)
# Select the non-null values for the column col_name in users and store the encoded values
users.loc[___, ___] = np.squeeze(encoded_vals)