如何将从1开始的整数值转换为一个热值?

时间:2019-05-19 10:24:20

标签: python python-3.x pandas

我有一个熊猫数据框,其中的一列包含从1到7的值。如何将这些值转换为一个热编码值?

据我所知,从0到任何值都可以不间断地使用SKlearn的OneHotEncoder,但是由于数字从1开始,所以我做不到。此列是我针对分类问题的从属特征列。

1 个答案:

答案 0 :(得分:1)

您可以使用熊猫get_dummies函数(docs

>>> import pandas as pd
>>> df = pd.DataFrame({'numerical_thing':[1,2,3,2,1,1,3,4,5,2,3,2,1]})
>>> pd.get_dummies(df.loc[:,'numerical_thing'])
    1  2  3  4  5
0   1  0  0  0  0
1   0  1  0  0  0
2   0  0  1  0  0
3   0  1  0  0  0
4   1  0  0  0  0
5   1  0  0  0  0
6   0  0  1  0  0
7   0  0  0  1  0
8   0  0  0  0  1
9   0  1  0  0  0
10  0  0  1  0  0
11  0  1  0  0  0
12  1  0  0  0  0

希望有帮助。