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. Vous devez 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 utiliserez l'ensemble de profils d'utilisateurs qui contient les préférences et choix de client·e·s 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 valeur numérique à l'aide de OrdinalEncoder de sklearn. Le DataFrame a été chargé pour vous sous le nom users. La fonction OrdinalEncoder() a aussi été chargée.
Les head() et tail() du DataFrame users ont été affichés pour vous.
Cette activité fait partie du cours
Gérer les données manquantes avec Python
Instructions de l’exercice
- Créez l'objet d'encodage ordinal et assignez-le à
ambience_ord_enc. - Sélectionnez les valeurs non manquantes de la colonne
'ambience'dansusers. - Remodellez
ambience_not_nullvers la forme(-1, 1). - Remplacez les valeurs non manquantes de
ambiencepar leurs valeurs encodées.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)