IniziaInizia gratis

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

Visualizza il corso

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)
Modifica ed esegui il codice