python - 在数据集的特定列上应用一个热编码,但结果不如预期
问题描述
我有一个包含五列的数据集。
数据集:
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
列上应用了一种热编码。
谁能告诉我为什么我得到了相同的结果而不是想要的结果?
解决方案
你可以这样做:
data['Employed'] = data['Employed'].replace('Fulltime',1).replace('Parttime',0)
推荐阅读
- python - 模糊匹配两个数据帧并加入结果
- deep-learning - 为 YOLOv3 标注 230k 图像
- swiftui - SwiftUI actionSheet 变成 .tabItem
- java - 不支持的major.minor 版本52.0 Java 1.7,tomcat 7
- excel - 根据数据验证列表使用按钮生成一个数字,并在每次按下时递增
- sql - Access SQL:无法使用 Max() 和 Min() 值更新列表
- html - primeng 可编辑表,发出 pEditableColumn
- activiti - 错误(completionCondition 'All' 不评估为布尔值)从并行多实例用户任务完成一个用户任务
- python-3.x - 在 al 列中查找最常见的字符串
- mysql - Node.js 与 knex + Mysql 迁移错误,而重命名列导致默认值