2017-10-21 98 views
0

非常感謝您的任何意見!如何將一列項目列表映射到分組類別

我想將數據框中的一列列表映射到分組類別。

更具體地說,我的名單列會是什麼樣子:

List    
"item1|item2" 
"item3|item2" 
"item1|item3" 

另外我還有一個分組類別數據幀:

Category Item 
C1   item1 
C1   item3 
C2   item2 
C2   item4 

我想創建原數據幀新的列(列表),使其變成如下:

List    Categories C1 C2 C3 C4  
"item1|item2" C1   TRUE 
"item3|item2" C1, C2  TRUE TRUE 
"item1|item3" C1, C2  TRUE TRUE 
+0

物品1 | ITEM2它應該是C1,C2和物品1 |項目3至C1? – Wen

回答

0
df['Categories']=df['List'].replace(df1.set_index('Item').T.to_dict('r')[0],regex=True) 

df=pd.concat([df,df.Categories.str.get_dummies('|').eq(1)],axis=1).replace({False:''}) 

df.Categories=df.Categories.str.split('|').apply(lambda x : ','.join(set(x))) 
df 
Out[194]: 
      List Categories C1 C2 
0 item1|item2  C1,C2 True True 
1 item3|item2  C1,C2 True True 
2 item1|item3   C1 True 

PS:如果你想添加這些None

mis=['C3','C4'] 
d = dict.fromkeys(mis, '') 
df.assign(**d) 
+0

你確定結果? –

+0

@cᴏʟᴅsᴘᴇᴇᴅ哈哈,忽視,讓我與我覈實 – Wen

+0

感謝您的快速回復,我不會有機會測試,直到明天 - 會讓你知道! – wingsoficarus116

相關問題