一则热编码单分类数值列

时间:2019-03-19 10:08:48

标签: python pandas vectorization one-hot-encoding

我正在寻找对分类数字列进行编码的方法。我在字符串类型的分类列中看到了很多编码,但是在已经进行了数值转换时却看不到。

我的目标是转换此熊猫数据框:

+---------+
|year|hour|
|2018|1|
|2018|3|
|2019|4|
|2019|4|
+------+

收件人:

+-----------------------------------------+
|year_2018|year_2019|hour_1|hour_3|hour_4|
|1|0|1|0|0|
|1|0|0|1|0|
|0|4|0|0|1|
|0|1|0|0|1|
+---------+

1 个答案:

答案 0 :(得分:0)

您需要pd.get_dummies

df = pd.DataFrame({'year':[2018,2018,2019,2019], 'hour':[1,3,4,4]})

print(pd.get_dummies(df, columns=['year','hour'], drop_first=False))

输出:

  year_2018  year_2019  hour_1  hour_3  hour_4                                                                                                                   
0          1          0       1       0       0                                                                                                                   
1          1          0       0       1       0                                                                                                                   
2          0          1       0       0       1                                                                                                                   
3          0          1       0       0       1