反转熊猫中的多标签二进制化器

时间:2019-04-19 15:18:54

标签: python-3.x sklearn-pandas

我的熊猫数据框为

'multies/{id}/tenties/{id}'

我使用以下代码收集每个用户的所有成果-

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

# load sample data 
df = pd.DataFrame( {'user_id':['1','1','2','2','2','3'], 'fruits':['banana','orange','orange','apple','banana','mango']})

获得此列表后,我将执行multilabel-binarizer操作,以将该列表转换为1或0

# collect fruits for each user 
transformed_df= df.groupby('user_id').agg({'fruits':lambda x: list(x)}).reset_index()

print(transformed_df)
  user_id                   fruits
0       1         [banana, orange]
1       2  [orange, apple, banana]
2       3                  [mango]

现在,我有一个要求,给我的输入数据帧为# perform MultiLabelBinarizer final_df = transformed_df.join(pd.DataFrame(mlb.fit_transform(transformed_df.pop('fruits')),columns=mlb.classes_,index=transformed_df.index)) print(final_df) user_id apple banana mango orange 0 1 0 1 0 1 1 2 1 1 0 1 2 3 0 0 1 0 ,我需要取回final_df,其中包含每个用户的transformed_df列表。 / p>

假设我有fruits作为输入数据框,我怎么能把这个transformed_df取回来?

我正在尝试使其正常运行

final_df

但是它没有给我列表。