有没有允许在列中找到两个字符串的python函数?

时间:2018-12-26 08:28:49

标签: python pandas

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

例如,我目前有这段代码,它提供了有关项目a或b的答案。

items=('a|b')
df1 = train[train['antecedents'].str.contains(items,flags=re.IGNORECASE, regex=True)]

这很有帮助,我正在寻找包含项目 a b 的所有

因为我不能使用多个str.contains(因为直到输入到item变量中才指定项目数),所以我不知道如何将'&'合并到{{ 1}}(我已经尝试过了,但是不起作用)。

是否可以采用其他方式合并'str.contains'?

1 个答案:

答案 0 :(得分:5)

只需将两个条件与&运算符组合即可:

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