给出一个列表列表,其中每个子列表都是一个充满字母的存储桶,例如:
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'。我想知道如何完成此功能。
答案 0 :(得分:4)
您可以使用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