对数据集的特定列应用一种热编码,但结果不符合预期
Applying One hot encoding on a particular column of a dataset but result was not as expected
我有一个包含五列的数据集。
数据集:
Country Population Tourism Mean_Age Employed
Afghanistan 37172386 14000 17.3 Fulltime
Albania 2866376 5340000 36.2 Parttime
有近 1000 个这样的数据,其中 Employed
是分类列。我想使用 one hot encoding.
将 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
列上应用了一种热编码。
谁能告诉我为什么我得到了相同的结果而不是想要的结果?
你可以这样做:
data['Employed'] = data['Employed'].replace('Fulltime',1).replace('Parttime',0)
您没有保存输出。
out = encoder.transform(...).todense()
data['employed'] = out
将数据集放在一起可能需要一些争论。我发现过去需要 pd.concat(numerical_in, categorical_encoded_in, axis=1)
,但您可能会在保存密集输出后发现它有效。
我有一个包含五列的数据集。
数据集:
Country Population Tourism Mean_Age Employed
Afghanistan 37172386 14000 17.3 Fulltime
Albania 2866376 5340000 36.2 Parttime
有近 1000 个这样的数据,其中 Employed
是分类列。我想使用 one hot encoding.
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
列上应用了一种热编码。
谁能告诉我为什么我得到了相同的结果而不是想要的结果?
你可以这样做:
data['Employed'] = data['Employed'].replace('Fulltime',1).replace('Parttime',0)
您没有保存输出。
out = encoder.transform(...).todense()
data['employed'] = out
将数据集放在一起可能需要一些争论。我发现过去需要 pd.concat(numerical_in, categorical_encoded_in, axis=1)
,但您可能会在保存密集输出后发现它有效。