给定一个列表,其中每个子列表是填充有字母的桶,例如:
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'。我想知道如何完成一个函数来实现这一点。
给定一个列表,其中每个子列表是填充有字母的桶,例如:
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