from sklearn.preprocessing import MultiLabelBinarizer
o, l = zip(*[[o, [*filter(pd.notna, l)]] for o, *l in zip(*map(df.get, df))])
mlb = MultiLabelBinarizer()
d = mlb.fit_transform(l)
pd.DataFrame(d, o, mlb.classes_)
Cat Dog Ferret Hamster Mouse Rat
Bob 0 1 0 0 0 0
John 1 0 0 0 1 0
Lee 1 1 0 0 0 0
Jane 0 0 1 1 0 1
sklearn.preprocessing.MultiLabelBinarizer
同样的答案
^{pr2}$您可以对堆栈数据集使用
get_dummies
,然后使用groupby和sum:使用
或者
^{pr2}$相关问题 更多 >
编程相关推荐