Codificarea ordinală a unui DataFrame
Caracteristicile categoriale pot fi codificate prin două tehnici: codificarea one-hot și codificarea ordinală. În codificarea one-hot, fiecare categorie devine o coloană, iar coloana categoriei respective primește valoarea 1 pentru fiecare rând, celelalte primind 0. În codificarea ordinală, categoriile sunt mapate la valori întregi, începând de la 0 până la numărul de categorii.
În acest exercițiu, vei itera peste toate coloanele din DataFrame-ul users pentru a codifica ordinal categoriile. Vei stoca, de asemenea, un encoder pentru fiecare coloană într-un dicționar ordinal_enc_dict, astfel încât coloanele codificate să poată fi reconvertite la categoriile originale.
Acest exercițiu face parte din cursul
Gestionarea datelor lipsă în Python
Instrucțiuni pentru exercițiu
- Definește un dicționar gol
ordinal_enc_dict. - Creează un obiect Ordinal Encoder pentru fiecare coloană.
- Selectează valorile non-nule ale coloanei din users și codifică-le.
- Atribuie înapoi valorile codificate valorilor non-nule ale fiecărei coloane (
col_name) din users.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)