创建用于多标签分类的数据集

Create a dataset for multi-labelled classification

我有以下形式的数据集:

Id  Class

1   a
2   b
2   c
3   c
3   d
3   a
3   e
3   f
4   g

我需要准备这些数据来执行多标签分类 所以我使用:

df.groupby("Id").Class.apply(','.join).reset_index()

获得:

Id  Class

1   a
2   b,c
3   c,d,e,f
4   g

现在 MultiLabelBinarizer 无法以当前形式处理它,因为 df.Class 表示为

("a", "b,c", "c,d,e,f", "g")

然而,它应该是

的形式

[["a"], ["b","c"], ["c","d","e","f"],["g"]]

我该怎么办?

你需要applylist:

print (df.groupby("Id").Class.apply(list))
Id
1                [a]
2             [b, c]
3    [c, d, a, e, f]
4                [g]
Name: Class, dtype: object