首页 > 解决方案 > 在数据集的特定列上应用一个热编码,但结果不如预期

问题描述

我有一个包含五列的数据集。

数据集:

Country       Population    Tourism    Mean_Age    Employed
Afghanistan  37172386       14000      17.3        Fulltime
Albania      2866376        5340000    36.2        Parttime

有近 1000 个这样的数据,其中Employed是分类列。我想使用一种热编码Employed将列表示为数字列。

我的代码是

from sklearn.preprocessing import OneHotEncoder
Employed_Status = data["Employed"]
encoder = OneHotEncoder()
encoder.fit(Employed_Status.values.reshape(-1, 1))
encoder.transform(Employed_Status.head().values.reshape(-1, 1)).todense()

data是我的数据框的名称。

当我在执行上述行后尝试查看数据集时,我得到了以前的数据集。

但是,我以为我会得到类似的东西

Country       Population    Tourism    Mean_Age    Employed
Afghanistan  37172386       14000      17.3        1
Albania      2866376        5340000    36.2        0

因为我在Employed列上应用了一种热编码。

谁能告诉我为什么我得到了相同的结果而不是想要的结果?

标签: pythonpandasdataframescikit-learnone-hot-encoding

解决方案


你可以这样做:

data['Employed'] = data['Employed'].replace('Fulltime',1).replace('Parttime',0)

推荐阅读