НачатьНачать бесплатно

Порядковое кодирование DataFrame

Категориальные признаки можно кодировать двумя способами: с помощью прямого кодирования (one-hot encoding) и порядкового кодирования (ordinal encoding). При прямом кодировании каждая категория становится отдельным столбцом: для каждой строки значение соответствующего столбца равно 1, остальные — 0. При порядковом кодировании категории заменяются целыми числами, начиная с 0 и до количества категорий.

В этом упражнении вы пройдёте по всем столбцам DataFrame users и применёте порядковое кодирование к категориям. Для каждого столбца вы также сохраните объект энкодера в словарь ordinal_enc_dict, чтобы впоследствии можно было восстановить исходные категории.

Это упражнение является частью курса

Работа с пропущенными данными в Python

Посмотреть курс

Инструкции к упражнению

  • Определите пустой словарь ordinal_enc_dict.
  • Создайте объект порядкового энкодера для каждого столбца.
  • Выберите ненулевые значения столбца в 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)
Редактировать и запускать код