Kodowanie porządkowe DataFrame
Cechy kategoryczne można zakodować na dwa sposoby: za pomocą kodowania one-hot oraz kodowania porządkowego. W kodowaniu one-hot każda kategoria staje się osobną kolumną – wartość 1 oznacza przynależność wiersza do danej kategorii, a 0 w pozostałych kolumnach. W kodowaniu porządkowym kategorie są mapowane na wartości całkowite, zaczynając od 0 aż do liczby kategorii.
W tym ćwiczeniu przejdziesz pętlą po wszystkich kolumnach w DataFrame users, aby zakodować kategorie porządkowo. Dla każdej kolumny zapiszesz też enkoder w słowniku ordinal_enc_dict, dzięki czemu zakodowane kolumny będzie można przekształcić z powrotem do oryginalnych kategorii.
To ćwiczenie jest częścią kursu
Braki danych w Pythonie
Instrukcje do ćwiczenia
- Zdefiniuj pusty słownik
ordinal_enc_dict. - Utwórz obiekt Ordinal Encoder dla każdej kolumny.
- Wybierz niepuste wartości danej kolumny w
usersi zakoduj je. - Przypisz zakodowane wartości z powrotem do niepustych wartości każdej kolumny (
col_name) wusers.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)