首页 >后端开发 >Python教程 >如何有效地检查 Pandas DataFrame 列中的多个子字符串?

如何有效地检查 Pandas DataFrame 列中的多个子字符串?

Patricia Arquette
Patricia Arquette原创
2024-11-30 12:17:11912浏览

How Can I Efficiently Check for Multiple Substrings Within a Pandas DataFrame Column?

使用多个子字符串测试 Pandas DataFrame 中子字符串的存在

在 pandas 中,结合 df.isin() 和 df[col].str。 contains() 检查字符串是否包含列表中的任何子字符串可能很乏味。本文提供了使用正则表达式和 str.contains() 方法的替代解决方案。

为了说明这一点,请考虑包含 ['cat','hat','dog','fog','宠物']。要查找包含“og”或“at”(“pet”除外)的所有元素,可以使用以下代码:

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

输出将为:

0    cat
1    hat
2    dog
3    fog
dtype: object

通过用“|”连接子字符串字符,str.contains() 方法可以有效匹配字符串元素中的任何子字符串。

处理特殊字符

请注意,在处理包含特殊字符的子字符串时字符,例如$或^,需要使用re.escape()对其进行转义。这确保了在匹配过程中按字面解释字符。

例如,如果 searchfor 包含 ['money', 'x^y']:

import re
safe_searchfor = [re.escape(m) for m in searchfor]
s[s.str.contains('|'.join(safe_searchfor))]

此代码转义特殊字符并确保子字符串的准确匹配。

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

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