Три способа кодирования категориальных переменных в Pandas
Я нашел три способа кодирования категориальных переменных, используя только функции Pandas. Давайте обсудим один за другим.
- pd.Categorical(column_name).codes
- pd.get_dummies (имя_столбца)
- 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()
В приведенном ниже коде кодирование каждой категориальной переменной по одной с использованием метода факторизации.
Сообщите мне о любых улучшениях или улучшениях. Код и данные доступны здесь.
Надеюсь, вам понравилось читать!
Не забудьте оценить и похлопать в ладоши.