Добавьте encoder.categores_ в качестве имени столбца в Pandas фрейме данных после использования OneHotEncoder - PullRequest
0 голосов
/ 07 апреля 2020

Я использую набор данных Titani c. Я сделал oneHotEncoding для 3 выживших категорий, пола, кабины.

encoder = OneHotEncoder(categories='auto',
                   drop='first', 
                   sparse=False,
                   handle_unknown='error')
encoder.fit(X_train.fillna('Missing'))

tmp = encoder.transform(X_train.fillna('Missing'))

onepd = pd.DataFrame(tmp, columns= encoder.categories_)

Размер массива ecoder.categories_ не совпадает с tmp. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 11 апреля 2020

encoder.categories_ может быть матрица, попробуйте индексировать первый элемент:

Попробуйте это:

encoder = OneHotEncoder(categories='auto',
                   drop='first', 
                   sparse=False,
                   handle_unknown='error')
encoder.fit(X_train.fillna('Missing'))

tmp = encoder.transform(X_train.fillna('Missing'))

onepd = pd.DataFrame(tmp, columns= encoder.categories_[0])
...