CommencezCommencez gratuitement

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

Voir le cours

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)
Modifier et exécuter le code