给定一个列表列表,其中每个子列表是一个装满字母的桶,例如: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
假设这封信是从“A”到“E”的。我想知道如何完成这样一个函数。
最佳答案
您可以使用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