【发布时间】:2018-11-27 16:36:50
【问题描述】:
我正在尝试从调查响应 DF 中提取一些记录。所有这些记录都需要至少包含一些关键词之一。例如: 现在我有一个数据框 df:
svy_rspns_txt
I like it
I hate it
It's a scam
It's shaddy
Scam!
Good service
Very disappointed
现在如果我跑
kw="hate,scam,shaddy,disappoint"
sensitive_words=[unicode(x,'unicode-escape') for x in kw.lower().split(",")]
df=df[df["svy_rspns_txt"].astype('unicode').str.contains('|'.join(sensitive_words),case=False,na=False)]
我会得到类似的结果
svy_rspns_txt
I hate it
It's a scam
It's shaddy
Scam!
Very disappointed
现在如何添加“matched_word”列来显示匹配的确切字符串,以便获得如下结果:
svy_rspns_txt matched_word
I hate it hate
It's a scam scam
It's shaddy shaddy
Scam! scam
Very disappointed disappoint
【问题讨论】:
-
如果多个单词匹配怎么办?
matched_word列应该显示所有单词,还是只显示匹配的第一个单词? -
@TimJohns 现在我只需要出现第一个单词。但是,如果您能提供一些建议来显示所有匹配的单词,那就太好了。谢谢!
标签: python pandas substring match string-matching