数据是这样的:
features1 features2 labels
1 1 563 1
2 1 254 1
3 missing 145 1
4 0 126 1
5 0 145 0
6 1 124 0
7 0 456 0
我将把这些数据应用到Tensorflow培训过程中,所以我想对feature1的值进行一次热编码。
上述数据的矩阵是:
[[1,563,1],
[2,254,1],
[missing,145,1],
[0,126,1],
[0,145,0],
[1,124,0],
[0,456,0]]
所以我认为它可以是一个热门编码:
> [1,0,0] represents 1
> [0,1,0] represents 0
> [0,0,1] represents 'missing'
我想要的输出就像:
[[1,0,0,563,1],
[1,0,0,254,1],
[0,0,1,145,1],
[0,1,0,126,1],
[0,1,0,145,0],
[1,0,0,124,0],
[0,1,0,456,0]]
我已经尝试了pd.get_dummies.But我无法成功。
答案 0 :(得分:0)
我不确定您是如何使用pd.get_dummies的,但请注意,此函数会为您生成一个新的数据框或数组,因此如果您想将1个热编码应用于数组中的第1列并保持在其他列中,您需要像这样重新分配您的数组:
newArrayWithOneHotEncoding = pd.get_dummies(arrayThatYouWantToTransform, columns = ['firstColumnHeader'])
更新 我忘了提到你需要为丢失设置一个不同的值,例如-1,然后以这种方式应用一个Hot Encoding,你将有三个新列