2015-02-25 1 views
1

У меня есть dataframe, представляющий отношения тега один-ко-многим, с именами столбцов «user_id» и «теги». Пользователь user_id может быть связан со многими тегами, но я хочу перестроить свой фрейм данных таким образом, что только один user_id для каждой строки, и каждое значение тега является его собственным столбцом.Реорганизация Pandas Dataframe: уникальные значения столбцов в виде имен столбцов

т.е. у меня есть:

User_id, Tags 

1, Dresses,  
1, Accessories, 
2, Dresses, 
2, Hats, 

И ХОТИТЕ:

User_id, Dresses, Accessories, Hats,  
1,  1,   1,   0, 
2,  1,   0,   1, 

ИЛИ

User_id, Dresses, Accessories, Hats, 
1,  True,   True,   False,  
2,  True,   False,   True, 
+1

Взгляните на стержне панд() –

ответ

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