我正在尝试将目标类别二值化,同时不丢失索引号。然而,我失败了,并且在sklearn.preprocessing.label_binarize中找不到相应的选项。输入 y:
index target 1 0 3 0 21 1 50 1
代码:
y=data['target']y=label_binarize(y, classes=[0, 1])y=np.hstack((1-y, y))
输出:
0 10 1 01 1 02 0 13 0 1
我希望的输出
0 11 1 03 1 021 0 150 0 1
回答:
Scikit-Learn函数可以接受Pandas数据框作为输入,但它们返回的是numpy数组。在处理数据框时,您应该考虑到这一规则。
因此,y
是一个numpy数组。不过,您可以这样将其转换回数据框:
y = pd.DataFrame(y, index=data.index) # 转换为数据框,并传递数据索引y.head()
现在,y
是:
0 11 1 03 1 021 0 150 0 1