提前感谢您的任何意见!
我正在尝试将数据框中的列列映射到分组类别。
更具体地说,我的列表列表如下:
List
"item1|item2"
"item3|item2"
"item1|item3"
另外,我有另一个分组类别数据框:
Category Item
C1 item1
C1 item3
C2 item2
C2 item4
我想在原始数据框(List)中创建一个新列,使其如下所示:
List Categories C1 C2 C3 C4
"item1|item2" C1 TRUE
"item3|item2" C1, C2 TRUE TRUE
"item1|item3" C1, C2 TRUE TRUE
答案 0 :(得分: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)