Ordinal encoding di un DataFrame
Le variabili categoriali possono essere codificate con due tecniche: one-hot encoding e ordinal encoding. Con il one-hot encoding, ogni categoria diventa una colonna e, per ogni riga, la colonna della categoria corrispondente vale 1 e le altre 0. Con l’ordinal encoding, le categorie vengono mappate su valori interi a partire da 0 fino al numero di categorie.
In questo esercizio, scorrerai tutte le colonne del DataFrame users per codificare ordinalmente le categorie. Salverai anche un encoder per ogni colonna in un dizionario ordinal_enc_dict, così le colonne codificate potranno essere riconvertite nelle categorie originali.
Questo esercizio fa parte del corso
Gestire i dati mancanti in Python
Istruzioni dell'esercizio
- Definisci un dizionario vuoto
ordinal_enc_dict. - Crea un oggetto Ordinal Encoder per ogni colonna.
- Seleziona i valori non null della colonna in users e codificali.
- Assegna nuovamente i valori codificati alle posizioni non null di ciascuna colonna (
col_name) in users.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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)