热线电话:13121318867

登录
2020-09-16 阅读量: 1250
OneHotEncoder使用说明

问:

OneHotEncoder使用说明


答:

使用Scikit-learn中的OneHotEncoder也是一种比较常见的做法。虽然它确实提供了更多的灵活性和更多的选择,但是使用起来有些困难。让我们来看看在数据集中怎么去实现这部分转换。

from sklearn.preprocessing import OneHotEncoder

oh = OneHotEncoder()

s1 = pd.DataFrame(oh.fit_transform(catDf.iloc[:, [1,5]]))

pd.concat([catDf, s1], axis=1)

在这里,我们已经初始化OneHotEncoder对象,然后在数据框中的所需列(列号0和列号3)上调用了 fit_transform方法。

fit_transform的返回类型为 numpy.ndarray,因此我们可以通过pd.DataFrame将其转换为数据框并将其存储在变量中。然后,再将它添加入我们的原始数据框中,这里我们可以使用 pd.concat 函数来连接2个不同的数据框。当我们设置 axis = 1时,这意味着两个数据框的拼接是基于列而不是行进行连接的。

此外,请依然记住 pd.concat 不是在原数据框上操作,所以我们需要将其赋值来保存。

catDf = pd.concat([catDf,s1],axis = 1)

输出结果数据框是:

从上面的结果我们可以看到,与pd.get_dummies相比,它得到的结果并不那么清晰易读,但是如果我们使用pd.get_dummiesOneHotEncoder获得的最后5列来比较 ,则它们都是相等的。

当然,您可以在OneHotEncoder中根据您的选择修改列名称 ,您可以在StackOverflow中学习问题 。


37.4872
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子