如何将一列项目列表映射到分组类别
问题描述:
非常感谢您的任何意见!如何将一列项目列表映射到分组类别
我想将数据框中的一列列表映射到分组类别。
更具体地说,我的名单列会是什么样子:
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
答
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)
物品1 | ITEM2它应该是C1,C2和物品1 |项目3至C1? – Wen