测试 Pandas 中的字符串子字符串包含
寻求一种有效的方法来确定 Pandas 系列中的字符串是否包含任何指定列表子串?与此相关的查询如下:
原始查询:
是否有一个 pandas 函数结合了 df.isin() 和 df[col] 的功能.str.contains()?我的目标是识别一系列包含给定列表中的任何子字符串的所有实例。
建议的解决方案:
论坛中建议的一种方法采用了循环和列表理解检查系列中的每个子字符串。然而,存在更简洁、更高效的解决方案。
基于正则表达式的解决方案:
利用正则表达式 |运算符,可以构造一个与给定列表中的每个子字符串匹配的正则表达式。然后可以将此正则表达式与 str.contains 一起使用来过滤序列中所需的值。
import re searchfor = ['og', 'at'] regex = '|'.join(searchfor) df['matching_column'][df['matching_column'].str.contains(regex)]
这种方法比迭代方法更高效,可以有效地实现所需的结果。
处理特殊字符:
如果子字符串包含具有正则表达式意义的特殊字符,例如作为 $ 或 ^,应使用 re.escape() 对它们进行转义,以确保它们按字面意思解释。
以上是如何有效地检查 Pandas 系列是否包含给定列表中的任何子字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!