我引用了以下帖子,它对您很有帮助,但我需要进一步走下去。Python-从列表中搜索数据框内的字符串
我不仅要在数据框中搜索单词列表,还要跟踪是否找到了多个单词以及出现的频率。因此,使用以上文章中的示例:
如果这是我的搜索列表
search_list = ['STEEL','IRON','GOLD','SILVER']
这是我正在搜索的数据框
a b
0 123 'Blah Blah Steel'
1 456 'Blah Blah Blah Steel Gold'
2 789 'Blah Blah Gold'
3 790 'Blah Blah blah'
我希望我的输出是
a b c d
0 123 'Blah Blah Steel' 'STEEL' 1
1 789 'Blah Blah Steel Gold' 'STEEL','GOLD' 2
2 789 'Blah Blah Gold' 'GOLD' 1
3 790 'Blah Blah blah'
我如何扩展上述文章中的出色解决方案以获得所需的输出?我目前正在使用投票最高的答案作为起点。
我更关心能够从列表中标记多个单词。我还没有找到任何方法可以做到这一点。如果在此步骤中无法执行此操作,则可以将字符串计数功能应用于数据帧以创建频率列。如果有一种方法可以一步一步完成所有操作,那么也很高兴知道这一点。
提前致谢!
您可以使用re.findall()而不是extract()来完成所需的操作。
import re
search_list = ['STEEL','IRON','GOLD','SILVER']
df['c'] = df.b.str.findall('({0})'.format('|'.join(search_list)), flags=re.IGNORECASE)
df['d'] = df['c'].str.len()
此输出如下所示:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句