如何将项列表列映射到分组类别

时间:2017-10-21 23:12:37

标签: python pandas dataframe

提前感谢您的任何意见!

我正在尝试将数据框中的列列映射到分组类别。

更具体地说,我的列表列表如下:

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

1 个答案:

答案 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)