Прямое кодирование, порядковое кодирование

I Прямое кодирование (One-Hot EncodingOHE) для преобразования категориальных признаков в численные.

Работает со всеми моделями, в том числе подходит и для логистической регрессии, когда все признаки должны стать количественными.

1) создаём новый столбец для каждого варианта значения признака, в котором будет уже новый признак дамми-признак, дамми-переменная;

2) присваиваем 1, если экзмепляру категория подходит, присваиваем 0 - если не подходит.

 функция pd.get_dummies()

а) ко всему датафрейму

pd.get_dummies(df)

б) к столбцу

pd.get_dummies(df['col1'])

в) drop_first=True (чтобы избежать дамми-ловушки) 
pd.get_dummies(df['col1'], drop_first=True)

II Порядковое кодирование (Ordinal Encoding) позволяет закодировать категории цифрами, с помощью номера категории.
Подходит для преобразования признаков в решающем дереве, случайном лесе, когда все признаки категориальные, и их нужно преобразовать в числа.

Не подходит для логистической регрессии.

from sklearn.preprocessing import OrdinalEncoder 

encoder = OrdinalEncoder() #получаем  список категориальных признаков

encoder.fit(df)

Далее  
а) df_new_ordinal = encoder.transform(df)  # только преобразуем данные 
б)df_new_ordinal = pd.DataFrame(encoder.transform(df), columns=df.columns) # преобразуем данные и даем названия столбцов
в)df_new_ordinal = pd.DataFrame(encoder.fit_transform(df), columns=df.columns) # можно одновременно подогнать и преобразовать