在MultiLabelBinarizer中计数

时间:2019-05-30 05:47:15

标签: python-3.x machine-learning scikit-learn data-manipulation

如何获取MultiLabelBinarizer中的项目计数?

import pandas as pd
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()

pd.DataFrame(mlb.fit_transform([(1,1,2), (3,3,2,5)]),columns=mlb.classes_)

Out[0]: 
   1  2  3  5
0  1  1  0  0
1  0  1  1  1

相反,我想得到

Out[0]: 
   1  2  3  5
0  2  1  0  0
1  0  1  2  1

因为在第1行中重复了1次,在第2行中重复了3次

1 个答案:

答案 0 :(得分:2)

from collections import Counter

data = [(1,1,2), (3,3,2,5)]
pd.DataFrame([Counter(x) for x in data]).fillna(0)

输出:

    1       2   3       5
0   2.0     1   0.0     0.0
1   0.0     1   2.0     1.0