我正在寻找数据帧的一行中是否存在两个不同的字符串。

例如,我目前有这个代码,它提供项目 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 - 正则表达式交替组,确保输入字符串在任何位置(相对于彼此)同时包含 ab
  • 关于python - 是否有允许在列中查找两个字符串的 python 函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53929424/

    10-12 16:52