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