Python 如何在熊猫数据帧中组合AND和OR运算符?

Python 如何在熊猫数据帧中组合AND和OR运算符?,python,regex,pandas,Python,Regex,Pandas,我的目标是找出在充满文本字符串(新闻文章标题)的专栏中是否存在某些关键字组合。然后我想在条形图中绘制频率 我使用熊猫数据框完成了以下工作: pvv_news = df[df['desc'].str.contains("pvv", case=True)] pvv_month = win.groupby(win.index.month).size() pvv_month.index = ['January', 'February', 'March', 'April', 'May', 'June']

我的目标是找出在充满文本字符串(新闻文章标题)的专栏中是否存在某些关键字组合。然后我想在条形图中绘制频率

我使用熊猫数据框完成了以下工作:

pvv_news = df[df['desc'].str.contains("pvv", case=True)]
pvv_month = win.groupby(win.index.month).size()
pvv_month.index = ['January', 'February', 'March', 'April', 'May', 'June']
pvv_month.plot(kind='bar')
其中:

现在,我搞不懂的是如何组合AND和OR来获得更具体的结果。我想到的但不起作用的例子:

pvv_news = df[df['desc'].str.contains("(pvv)&(nederland|overheid)", case=True)]
我已经研究了以下函数,但无法理解:

  • 熊猫系列提取物
  • 熊猫。系列。str。匹配
  • pandas.Series.str.contains
  • 正则表达式与上述函数的组合

如果我正在按照您想要做的做,这应该会起作用:

pvv_news = df[(df['desc'].str.contains("pvv"), case = True) &
              ((df['desc'].str.contains("nederland"), case = True) |  
               (df['desc'].str.contains("overheid"), case = True)) ]

这正是我想做的,谢谢!一般来说,您认为这是使用Pandas时在字符串中搜索关键字的一种合乎逻辑的方法吗?当我要查找的关键字不是字符串中的完整单词时,是否需要使用正则表达式?i、 e:关键词:美国,字符串:美国我想你可以把它简化为:
pvv_news=df[(df['desc'].str.contains(“pvv”),case=True)和(df['desc'].str.contains(“nederland | overheid”),case=True)]
@EdChum Yep,我已经做过了,而且效果很好。我不得不说,我不理解允许|但不允许&在“”中的逻辑。@Lam您应该能够传递一个正则表达式作为模式,并且只使用一个
contains
call@EdChum这里:它说当您想在str.contains中使用regex时,可以使用re.search。使用re.search应该遵循re.search(模式、字符串、标志=0)()。在这种情况下,如何给出字符串参数?