我有一个表示一对多标记关系的数据框,列名为'user_id'和'tags'。 user_id可以与许多标签相关联,但我想重新排列我的数据框,使每行只有一个user_id,每个标签值都是它自己的列。
即。我有:
User_id, Tags
1, Dresses,
1, Accessories,
2, Dresses,
2, Hats,
并且想要:
User_id, Dresses, Accessories, Hats,
1, 1, 1, 0,
2, 1, 0, 1,
OR
User_id, Dresses, Accessories, Hats,
1, True, True, False,
2, True, False, True,
答案 0 :(得分:0)
您可以使用get_dummies
和groupby
:
df =pd.DataFrame({'user_id':[1,1,2,2],'tags':['Dresses','Accessories','Dresses','Hats']})
pd.get_dummies(df).groupby('user_id').max()
返回:
tags_Accessories tags_Dresses tags_Hats
user_id
1 1 1 0
2 0 1 1