首页 > 解决方案 > 标称值的标签编码

问题描述

我正在研究具有名义列的数据集,即本质上是分类的,有点像这样:

>>>data['MODE'].unique()
array(['A', 'B', 'C'], dtype=object)

我想将这些标称值转换为数值对应物(A-0、B-1、C-2)。我该怎么做呢 ?


给出的代码只是为了演示列中存在的类,我需要将整个列转换为序数(即映射 A->0,B->1,C->2)

标签: pythonpandasnumpyscikit-learn

解决方案


使用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}

推荐阅读