Ordinalenkodning av en kategorisk kolumn
Att imputera kategoriska värden kräver några extra steg jämfört med att imputera numeriska värden. Du behöver först konvertera dem till numeriska värden, eftersom statistiska operationer inte kan utföras på strängar.
Du kommer att använda ett användarprofil-dataset som innehåller kundpreferenser och val registrerade av en restaurang. Det innehåller enbart kategoriska särdrag. I den här övningen konverterar du den kategoriska kolumnen 'ambience' till en numerisk kolumn med hjälp av OrdinalEncoder från sklearn. DataFrame:en har lästs in åt dig som users. Funktionen OrdinalEncoder() har också laddats in.
head() och tail() för users DataFrame har skrivits ut åt dig.
Den här övningen är en del av kursen
Hantera saknade värden i Python
Övningsinstruktioner
- Skapa ordinalenkodarobjektet och tilldela det till
ambience_ord_enc. - Välj de icke-saknade värdena i kolumnen
'ambience'iusers. - Omforma
ambience_not_nulltill formen(-1, 1). - Ersätt de icke-saknade värdena i
ambiencemed dess enkodade värden.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)