CommencerCommencer gratuitement

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

Afficher le cours

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