python - 标称值的标签编码
问题描述
我正在研究具有名义列的数据集,即本质上是分类的,有点像这样:
>>>data['MODE'].unique()
array(['A', 'B', 'C'], dtype=object)
我想将这些标称值转换为数值对应物(A-0、B-1、C-2)。我该怎么做呢 ?
给出的代码只是为了演示列中存在的类,我需要将整个列转换为序数(即映射 A->0,B->1,C->2)
解决方案
使用factorize
:
a = data['MODE'].unique()
print (pd.factorize(a)[0])
[0 1 2]
print (dict(zip(a, pd.factorize(a)[0])))
{'A': 0, 'B': 1, 'C': 2}
或列举:
print ({v:k for k, v in dict(enumerate(a)).items()})
{'A': 0, 'B': 1, 'C': 2}
推荐阅读
- scheme - 如何计算方案中数字的列表中除数的数量
- javascript - 根据时间间隔获取字符串数组
- python - 掩蔽掩蔽方法如何在熊猫中起作用?
- amazon-web-services - 如何通过 cloudformation 将多个电子邮件地址添加到 SNS 主题?
- automation - 无法获取 AppPackage 和 AppActivity
- django - 根据是否存在外键关系过滤django查询集
- apache-kafka-streams - 是否有可能从 ktable\kstream 获得前 10 名?
- c - 在 Gstreamer 管道中重新连接 RTSP 流
- html - 我无法通过 css 代码将背景图像添加到我的 jsp 文件中
- android - 在 android 10 上评估 java 脚本时重新加载 web 视图