一次热编码sklearn后如何保留列名?

use*_*276 3 python pandas scikit-learn data-science one-hot-encoding

我正在处理巨大的kaggle竞赛,以处理类别数据,我将数据分为2组:一组用于数字变量,另一组用于类别变量。在使用sklearn进行工作后,使用分类变量对该集合进行了一种热编码,我尝试对这两个数据集进行重新组合,但是由于该分类集合是一个ndarray而另一个是我使用的数据帧:

np.hstack((X_train_num, X_train_cat))
Run Code Online (Sandbox Code Playgroud)

可以正常工作,但是我不再使用变量名。

在不使用pd.get_dummies()的情况下保持变量名称的同时,还有另一种方法吗?

谢谢

piR*_*red 5

尝试

X_train = X_train_num.join(
   pd.DataFrame(X_train_cat, X_train_num.index).add_prefix('cat_')
)
Run Code Online (Sandbox Code Playgroud)