使用多个子字符串测试 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中文网其他相关文章!