首页 >后端开发 >Python教程 >如何有效地检查 Pandas 系列是否包含给定列表中的任何子字符串?

如何有效地检查 Pandas 系列是否包含给定列表中的任何子字符串?

Susan Sarandon
Susan Sarandon原创
2024-11-30 01:37:10890浏览

How Can I Efficiently Check if a Pandas Series Contains Any Substring from a Given List?

测试 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中文网其他相关文章!

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