OneHotEncoder изменить имя столбца - PullRequest
0 голосов
/ 10 апреля 2019

Я использую OneHotencoder для преобразования категориальных столбцов в числовые данные, но алгоритм меняет имя столбцов.Как сохранить столбцы с тем же именем?

(я использую python 3)

Мой фрейм данных выглядит так:

>>> import pandas 
>>> import numpy
>>> ar = numpy.array([['yassine', 1], ['jack',7], ['ahmed',4]])
>>> df = pandas.DataFrame(ar, columns = ['name', 'label'])
>>> df
      name label
0  yassine     1
1     jack     7
2    ahmed     4


>>> import category_encoders as ce
>>> ohe = ce.OneHotEncoder(handle_unknown='ignore', 
    use_cat_names=True)
>>> label_fournisseur = ohe.fit_transform(list(df['name']))
>>> label_fournisseur
   0_yassine  0_jack  0_ahmed
0          1       0        0
1          0       1        0
2          0       0        1

Мне нужно, чтобы столбцы оставались без изменений:

     yassine    jack    ahmed
0          1       0        0
1          0       1        0
2          0       0        1

спасибо

1 Ответ

1 голос
/ 10 апреля 2019

Вы можете изменить названия столбцов, как считаете нужным.Чтобы удалить «0_», вы можете сделать, например:

label_fournisseur.columns = [ x[2:] for x in label_fournisseur.columns ]

Другой способ получить то, что вы хотите (без другой библиотеки):

pandas.get_dummies(df["name"])

приводит к:

       ahmed  jack  yassine
0      0     0        1
1      0     1        0
2      1     0        0

Примечание: get_dummies выполняет одно горячее кодирование, если вход имеет одну категорию для наблюдения (ваш случай).Для других случаев (несколько категорий на наблюдение) весь вопрос должен быть изменен по-другому (поскольку в названии столбца нельзя указывать только одну категорию).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...