首页 >后端开发 >Python教程 >如何有效地检查 Pandas 中是否包含多个子字符串?

如何有效地检查 Pandas 中是否包含多个子字符串?

Patricia Arquette
Patricia Arquette原创
2024-12-05 01:29:14873浏览

How Can I Efficiently Check for Multiple Substring Inclusions in Pandas?

使用 Pandas 测试字符串子字符串包含

在 pandas 中,需要确定字符串是否包含列表中存在的任何子字符串。为了解决这个问题,可以使用 df.isin() 和 df[col].str.contains() 的组合。然而,这种方法被认为很麻烦。

改进的解决方案

更精致的方法涉及利用 |正则表达式中的(管道)字符可同时匹配多个子字符串。此技术需要使用 '|'.join() 连接列表中的子字符串:

searchfor = ['og', 'at']
s[s.str.contains('|'.join(searchfor))]

此方法有效地识别与任何指定子字符串匹配的字符串,从而产生精确的结果:

0    cat
1    hat
2    dog
3    fog
dtype: object

处理特殊字符

在处理包含特殊字符的子字符串时要小心,例如$ 和 ^ 在正则表达式中具有特定含义。为了确保文字匹配,请使用 re.escape() 转义这些字符:

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

s[s.str.contains('|'.join(safe_matches))]

以上是如何有效地检查 Pandas 中是否包含多个子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn