一个热编码单个分类数值列

One Hot Encoding Single Categorical Numerical Column

我想对分类数字列进行编码。我看到了很多来自字符串类型分类列的编码,但是当已经转换为数字时就没有了。

我的目标是转换这个 pandas 数据框:

+---------+
|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|
+---------+

你需要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