如何从列中给定的多个标签中创建列表

时间:2019-04-28 14:10:49

标签: python pandas csv

我有一个包含2列的csv文件...图像名称及其对应的多个标签。我想将其转换为多个Binarizer向量。但是我出错了。

我直接在标签的第二列上尝试了sklearn的MultipleBinarizer

df["labels"][0]给出:

['label1', 'label2', 'label3']

df.head()给出了image name ['label1','label2']等。

我想为此获得二值化器。

1 个答案:

答案 0 :(得分:0)

我尝试了下面的代码,它为我工作。我相信还有其他方法,但希望对您有所帮助。
我的输入文件如下所示
enter image description here

import pandas as pd
import numpy as np
from sklearn.preprocessing import MultiLabelBinarizer
file = pd.read_csv('file.csv', sep='\t')
y = file['label'].apply(lambda f: f.split(','))
binarizer = MultiLabelBinarizer()
one_hot = binarizer.fit_transform(y.values)
print(one_hot, binarizer.classes_)