微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

过滤数据框熊猫中的关键字/句子

如何解决过滤数据框熊猫中的关键字/句子

目前,我有一个数据框。这是我的数据框的示例:

enter image description here

我也有一个关键字/句子列表。我想将其与“内容”列匹配,看看是否有任何关键字或句子匹配。

这就是我所做的

enter image description here

# instructions_list is just the list of keywords and key sentences 
instructions_list = instructions['Key words & sentence search'].tolist()
pattern = '|'.join(instructions_list)


bureau_de_sante[bureau_de_sante['Content'].str.contains(pattern,regex = True)]

虽然它给了我结果,但同时也给了我UserWarning:UserWarning:此模式具有匹配组。要实际获得组,请使用str.extract。 返回func(self,* args,** kwargs)。

enter image description here

问题:

  1. 如何防止出现用户警告?
  2. 找到并查看该列中是否有匹配项后,如何在新列中打印特定的匹配项?

解决方法

您正在提供regex来搜索数据框。如果指令列表中有括号(例如您的示例中的情况),则表示匹配组。为了避免这种情况,您必须对它们进行转义(即:在它们前面添加regex,以使\变成(Critical risk))。您可能还希望转义所有\(Critical risk\)等特殊字符。

现在,您可以使用这些组从数据中提取匹配项。这是一个示例:

\ . " '

您可以通过简单的分配(例如df = pd.DataFrame(["Hello World","Foo Bar Baz","Goodbye"],columns=["text"]) pattern = "(World|Bar)" print(df.str.extract(pattern)) # 0 # 0 World # 1 Bar # 2 NaN )将此列添加到数据框中

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。