我正在寻找数据帧的一行中是否存在两个不同的字符串。
例如,我目前有这个代码,它提供项目 a 或 b 的答案。
items=('a|b')
df1 = train[train['antecedents'].str.contains(items,flags=re.IGNORECASE, regex=True)]
尽管这很有帮助,但我希望找到所有 行 ,其中包含项目 a AND b 。
因为我不能使用多个 str.contains(因为在输入到 items 变量之前没有指定项目的数量),所以我不知道如何将 '
&
' 合并到 str.contains
(我已经尝试过,它没有不工作)。是否有不同的方式来合并“
&
”? 最佳答案
只需将 2 个条件与 &
运算符结合起来:
df1 = train[(train.antecedents.str.contains('a', case=False)) \
& (train.antecedents.str.contains('b', case=False))]
正则表达式替代:
df1 = train[train.antecedents.str.contains('a.*b|b.*a', regex=True, flags=re.I)]
a.*b|b.*a
- 正则表达式交替组,确保输入字符串在任何位置(相对于彼此)同时包含 a
和 b
。 关于python - 是否有允许在列中查找两个字符串的 python 函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53929424/