Порядкове кодування DataFrame
Категоріальні ознаки можна кодувати двома способами: one-hot кодуванням і порядковим (ordinal) кодуванням. За one-hot кодування кожна категорія стає окремим стовпцем, і для кожного рядка в стовпці відповідної категорії стоїть 1, а в інших — 0. За порядкового кодування категорії відображаються на цілі числа, починаючи з 0 до кількості категорій.
У цій вправі ви пройдетеся циклом по всіх стовпцях датафрейму users, щоб порядково закодувати категорії. Ви також збережете кодувальник для кожного стовпця у словнику ordinal_enc_dict, щоб у разі потреби перетворити закодовані значення назад на початкові категорії.
Ця вправа є частиною курсу
Робота з пропущеними даними в Python
Інструкції до вправи
- Створіть порожній словник
ordinal_enc_dict. - Створіть об'єкт Ordinal Encoder для кожного стовпця.
- Виберіть ненульові значення стовпця в users і закодуйте їх.
- Запишіть закодовані значення назад у ненульові елементи кожного стовпця (
col_name) у users.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)