熊猫python到onehot标签几列具有相同的值

时间:2018-08-29 13:40:34

标签: python scikit-learn

我正在尝试使用带onehot标签的Python创建机器学习功能。原始数据假设元素_1,元素_2,元素3 ...的值像苹果,香蕉,猕猴桃...

     element_1     element_2     element_3
1.     apple         banana          kiwi

2.     apple         

3.     banana        kiwi            

4.     kiwi          apple

我想要做的就是像这样的新功能

     apple     banana     kiwi
1.     1           1          1

2.     1           0          0

3.     0           1          1

4.     1           0          1

谢谢。

尝试过的方法会创建超出所需数量的列,例如element1_apple,element1_banana,...,element2_apple ...

Y = TrainDF.loc [:,['ele_1','ele_2','ele_3','ele_4']] Y1 = pd.DataFrame(columns = Y.columns,data = le2.fit_transform(Y.values.flatten())。reshape(Y.shape))

Y2 = onehot1.fit_transform(Y1)

感谢您的评论。该项目的目标是预测如何通过混合元素及其单个量(%)(最少1个元素和最多4个元素)来获得某些特性。有四列元素输入和大约50种元素类型。假设需要RGB值(100,50,150),则需要输入5%的元素+ 8%的D元素。标签编码和onehot编码效果不佳。我正在整理数据,因此用于培训的输出如下所示。

     apple     banana     kiwi
1.     1           2          1

2.     3           0          0

3.     0           1          5

4.     1           0          1

1 个答案:

答案 0 :(得分:0)

尝试:

pd.get_dummies(df.stack(), prefix=None, prefix_sep=None).sum(level=0)

输出:

    apple  banana  kiwi
1.      1       1     1
2.      1       0     0
3.      0       1     1
4.      1       0     1