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_dummies 和 OneHotEncoder获得的最后5列来比较 ,则它们都是相等的。
当然,您可以在OneHotEncoder中根据您的选择修改列名称 ,您可以在StackOverflow中学习此问题 。






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论