如何在Python中使用多个标签进行热编码?

时间:2019-12-16 05:01:59

标签: python one-hot-encoding

我有一个CSV表格,看起来像这样:

id   attribute
1    Canada
1    United States
2    Germany
3    Canada
4    Germany
4    United States

我想将上面的表变成:

id   attribute.Canada   attribute.UnitedStates   attribute.Germany
1    1.0                1.0                      0.0
2    0.0                0.0                      1.0
3    1.0                0.0                      0.0
4    0.0                1.0                      1.0

我希望完成三件事:

  1. 每行将具有唯一的ID
  2. “属性”标签下的值成为经过热编码的列名
  3. 将新表导出回CSV

1 个答案:

答案 0 :(得分:1)

我只想给您起步。取属性列的唯一值,并将其附加到先前已初始化“ id”的数组中。获取'id'的唯一值(即1 2 3 4),并将其添加为索引,并将较早的数组添加为列以初始化数据帧。

遍历“ id”的唯一值,使用regex读取以“ id”值开头的行。提取属性值,并将字典的值设置为1.0,然后将其附加到数据框,然后将NaN替换为0.0。