Encodage ordinal d'un DataFrame
Les caractéristiques catégorielles peuvent être encodées au moyen de deux techniques, soit le one-hot encoding et l'encodage ordinal. Avec le one-hot encoding, chaque catégorie devient une colonne et, pour chaque ligne, la colonne correspondant à la catégorie prend la valeur 1 et les autres 0. Avec l'encodage ordinal, les catégories sont associées à des entiers allant de 0 jusqu'au nombre de catégories moins un.
Dans cet exercice, vous allez parcourir toutes les colonnes du DataFrame users pour encoder ordinalement les catégories. Vous allez aussi conserver un encodeur pour chaque colonne dans un dictionnaire ordinal_enc_dict afin de pouvoir reconvertir les colonnes encodées vers leurs catégories d'origine.
Cette activité fait partie du cours
Gérer les données manquantes avec Python
Instructions de l’exercice
- 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 ce code d’exemple.
# 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)