Кодировать несколько меток в DataFrame - PullRequest
0 голосов
/ 09 октября 2018

Имеется список списка, в котором каждый подсписок представляет собой блок, заполненный буквами, например:

L=[['a','c'],['b','e'],['d']]

Я хотел бы закодировать каждый подсписок как одну строку в моем DataFrame вот так:

    a   b   c   d   e
0   1   0   1   0   0
1   0   1   0   0   1
2   0   0   0   1   0

Давайте предположим, что буква просто от «а» до «е».Мне интересно, как завершить функцию, чтобы сделать это.

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете использовать библиотеку sklearn:

import pandas as pd
from sklearn.preprocessing import MultiLabelBinarizer

L = [['a', 'c'], ['b', 'e'], ['d']]

mlb = MultiLabelBinarizer()

res = pd.DataFrame(mlb.fit_transform(L),
                   columns=mlb.classes_)

print(res)

   a  b  c  d  e
0  1  0  1  0  0
1  0  1  0  0  1
2  0  0  0  1  0
...