Три способа кодирования категориальных переменных в Pandas

Я нашел три способа кодирования категориальных переменных, используя только функции Pandas. Давайте обсудим один за другим.

  1. pd.Categorical(column_name).codes
  2. pd.get_dummies (имя_столбца)
  3. pd.factorize (имя_столбца) [0]

Сначала импортируйте модуль Pandas и обучайте данные

import pandas as pd
train = pd.read_csv('train.csv')

Найдите категориальные переменные из данных поезда. Для выбора категориальных переменных используйте df.select_dtypes(include=[‘object’]), где df — данные типа DataFrame.

  • «Customer_id», «имя» не добавляют информацию в модель. Поэтому не будем кодировать их и удалять эти столбцы.

Выберите необходимые переменные и составьте список категориальных переменных, которые необходимо закодировать, как показано ниже:

1. Использование pd.Categorical(column_name).codes

Здесь, в этом коде, выполняется итерация по каждому категориальному столбцу, его кодирование и сохранение в новом фрейме данных с именем cat.

2. Использование pd.get_dummies()

Здесь создана общая функция create_dummies для создания фиктивных столбцов из категориального столбца. Затем переберите каждую категориальную переменную и закодируйте, используя общую функцию.

def create_dummies(df,column_name):
    dummies=pd.get_dummies(df[column_name],prefix=column_name)
    df=pd.concat([df,dummies],axis=1)
    return df
cat_dummy = categorical_cols.copy()
for column in columns_list:
    cat_dummy = create_dummies(cat_dummy,column)
 
 cat_dummy

Вывод манекена кошки, как показано ниже:

Вместо того, чтобы преобразовывать по одной категориальной переменной, можно сразу преобразовать все переменные, как показано ниже:

cat_dummy2 = categorical_cols.copy()
pd.get_dummies(cat_dummy2.iloc[:,2:])

В приведенном выше коде фрейм данных категориальных столбцов скопирован в фрейм данных с именем cat_dummy2. Затем использовал iloc для исключения первых двух столбцов, а именно «name», «customer_id».

3. Использование pd.factorize()

В приведенном ниже коде кодирование каждой категориальной переменной по одной с использованием метода факторизации.

Сообщите мне о любых улучшениях или улучшениях. Код и данные доступны здесь.

Надеюсь, вам понравилось читать!
Не забудьте оценить и похлопать в ладоши.