您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python-如何在pandas中测试字符串是否包含列表中的子字符串之一?

Python-如何在pandas中测试字符串是否包含列表中的子字符串之一?

一种选择是仅使用正则表达式|字符尝试匹配系列中单词中的每个子字符串s(仍使用str.contains)。

你可以通过将单词searchfor与结合在一起来构造正则表达式|:

>>> searchfor = ['og', 'at']
>>> s[s.str.contains('|'.join(searchfor))]
0    cat
1    hat
2    dog
3    fog
dtype: object

就像@AndyHayden在下面的注释中指出的那样,请注意你的子字符串是否具有特殊字符,例如$和^你想在字面上进行匹配的字符。这些字符在正则表达式的上下文中具有特定含义,并且会影响匹配。

你可以通过转义非字母数字字符来使子字符串列表更安全re.escape

>>> import re
>>> matches = ['$money', 'x^y']
>>> safe_matches = [re.escape(m) for m in matches]
>>> safe_matches
['\\$money', 'x\\^y']

与结合使用时,此新列表中带有的字符串将逐字匹配每个字符str.contains

python 2022/1/1 18:24:58 有151人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶