【发布时间】:2019-03-06 17:00:53
【问题描述】:
我有以下清单:
search_list = ['STEEL','IRON','GOLD','SILVER']
我需要在数据框 (df) 中搜索:
a b
0 123 'Blah Blah Steel'
1 456 'Blah Blah Blah'
2 789 'Blah Blah Gold'
并将匹配的行插入到一个新的数据框(newdf)中,从列表中添加一个带有匹配词的新列:
a b c
0 123 'Blah Blah Steel' 'STEEL'
1 789 'Blah Blah Gold' 'GOLD'
我可以使用下面的代码来提取匹配的行:
newdf=df[df['b'].str.upper().str.contains('|'.join(search_list),na=False)]
但我不知道如何将列表中的匹配词添加到 c 列中。
我认为匹配需要以某种方式捕获列表中匹配单词的索引,然后使用索引号提取值,但我不知道该怎么做。
任何帮助或指点将不胜感激
谢谢
【问题讨论】: