我有一列15000数组。请从15000中找到2个这样的记录的样本。我想为Genres_relevant下的值创建虚拟变量。

user Genres_relevant
 1         [2.0]
 2     [3.0,2.0,1.0]


码:

from sklearn.preprocessing import MultiLabelBinarizer
df=pd.DataFrame(users_list['Genres_relevant'])
mlb = MultiLabelBinarizer()
pd.DataFrame(mlb.fit_transform(df),columns=mlb.classes_, index=df.index)


预期产量

   1.0  2.0  3.0
1   0    1    0
2   1    1    1


错误:
传递的值的形状为(12,1),索引表示为(12,15000)

最佳答案

pd.DataFrame(mlb.fit_transform(df['Genres_relevant']), columns=mlb.classes_,
         index=df.index)


适合时,不要传递完整的数据帧,而应传递列。

关于python - MultiLabelBinarizer不适用于具有多个数组的列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55826200/

10-12 22:51