Encodage ordinal d’une colonne catégorielle
L’imputation de valeurs catégorielles comporte quelques étapes supplémentaires par rapport à l’imputation de valeurs numériques. Il faut d’abord les convertir en valeurs numériques, car on ne peut pas effectuer d’opérations statistiques sur des chaînes de caractères.
Vous allez utiliser un jeu de données de profils d’utilisateurs contenant les préférences et choix de clients enregistrés par un restaurant. Il ne contient que des variables catégorielles. Dans cet exercice, vous allez convertir la colonne catégorielle 'ambience' en une colonne numérique à l’aide de OrdinalEncoder de sklearn. Le DataFrame a été chargé pour vous sous le nom users. La fonction OrdinalEncoder() a également été importée.
Les sorties de head() et tail() du DataFrame users ont été affichées pour vous.
Cet exercice fait partie du cours
Gérer les données manquantes en Python
Instructions
- Créez l’objet d’encodage ordinal et affectez-le à
ambience_ord_enc. - Sélectionnez les valeurs non manquantes de la colonne
'ambience'dansusers. - Remodelez
ambience_not_nullau format(-1, 1). - Remplacez les valeurs non manquantes de
ambiencepar leurs valeurs encodées.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Set col_name to 'ambience'
col_name = 'ambience'
# Create Ordinal encoder
ambience_ord_enc = ___
# Select non-null values of ambience column in users
ambience = users[col_name]
ambience_not_null = ___
# Reshape ambience_not_null to shape (-1, 1)
reshaped_vals = ___
# Select the non-null values for the column col_name in users and store the encoded values
encoded_vals = ambience_ord_enc.fit_transform(reshaped_vals)
users.loc[___, col_name] = np.squeeze(encoded_vals)