Одна горячая кодировка для нескольких столбцов в одном go и добавление к основному набору данных? - PullRequest
0 голосов
/ 04 августа 2020

Я использую код ниже в python для быстрого кодирования одной из многих категориальных переменных в моем наборе данных. Однако я хочу закодировать несколько столбцов в один go, но не могу этого сделать. Кроме того, эти несколько столбцов имеют разные # категорий. Например; у одного может быть только Да и Нет, но в других столбцах есть 4-5 разных категорий. Как я могу закодировать все это вместе, используя приведенный ниже код, и добавить его в основной набор данных?

from numpy import array
from numpy import argmax
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import OneHotEncoder
# define example
  data = df[["column-name"]]
  values = array(data)
  print(values)
# integer encode
  label_encoder = LabelEncoder()
  integer_encoded = label_encoder.fit_transform(values)
  print(integer_encoded)
# binary encode
  onehot_encoder = OneHotEncoder(sparse=False)
  integer_encoded = integer_encoded.reshape(len(integer_encoded), 1)
  onehot_encoded = onehot_encoder.fit_transform(integer_encoded)
  print(onehot_encoded)

1 Ответ

0 голосов
/ 13 августа 2020

Вы можете легко добиться желаемого, используя функцию pandas get_dummies () . Попробуйте выполнить этот код:

data = pd.get_dummies(data)

Это закодирует все категориальные переменные и добавит их в основной фрейм данных.

...