使用OneHotEncoder后,在Pandas数据框中添加encoder.categores_作为列名

问题描述 投票:0回答:1

我正在使用Titanic数据集。我对3个幸存的类别(性别,客舱)做了oneHotEncoding。

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不同。有什么办法吗?

pandas machine-learning scikit-learn one-hot-encoding feature-engineering
1个回答
0
投票

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])
© www.soinside.com 2019 - 2024. All rights reserved.