Codifica ordinale di una colonna categorica
L'imputazione dei valori categorici richiede alcuni passaggi aggiuntivi rispetto all'imputazione dei valori numerici. Per prima cosa devi convertirli in valori numerici, perché non è possibile eseguire operazioni statistiche sulle stringhe.
Userai l'insieme di dati dei profili utente, che contiene preferenze e scelte dei clienti registrate da un ristorante. Contiene solo caratteristiche categoriche. In questo esercizio, convertirai la colonna categorica 'ambience' in una numerica usando OrdinalEncoder di sklearn. Il DataFrame è stato caricato per te come users. Anche la funzione OrdinalEncoder() è stata caricata.
Sono stati stampati per te il head() e il tail() del DataFrame users.
Questo esercizio fa parte del corso
Gestire i dati mancanti in Python
Istruzioni dell'esercizio
- Crea l'oggetto ordinal encoder e assegnalo a
ambience_ord_enc. - Seleziona i valori non mancanti della colonna
'ambience'inusers. - Applica il reshape di
ambience_not_nullalla forma(-1, 1). - Sostituisci i valori non mancanti di
ambiencecon i suoi valori codificati.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)