Рассмотрим способ числового кодирования колонок датафрейма, имеющих небольшой набор значений. В частности, распространено порядковое кодирование, которое каждой категории ставит в соответствие целое число 0, 1, ...,число_категорий -1. Обратите внимание, что после такого кодирования признак приобретает упорядоченность (например, 5>3 и отличается на 2), и если будет интерпретироваться не как категориальный, а числовой может дезориентировать модель машинного обучения (в этом случае лучше использовать onehot кодирование).
Порядковое кодирование реализуется классом OrdinalEncoder модуля sklearn.preprocessing. Рассмотрим его работу на следующем датафрейме:
С помощью OrdinalEncoder трансформации можно подвергать сразу несколько столбцов:
В свойстве categories_ хранятся массивы с выделенными в ходе fit-а категориями:
А так можно получить трансформированный датафрейм и дать ему осмысленные названия колонок:
С методом inverse_transform можно обратно трансформировать числа в наименований категорий: