如何在 Pandas 数据框中组合 AND 和 OR 运算符?

Lam*_*Lam 6 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_month.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)

这使:

在此处输入图片说明

现在,我无法弄清楚如何组合 AND 和 OR 以获得更具体的结果。我想到的但不起作用的例子:

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

我查看了以下功能,但无法弄清楚:

  • pandas.Series.str.extract
  • pandas.Series.str.match
  • pandas.Series.str.contains
  • 正则表达式结合上述功能。

iay*_*ork 5

如果我正在关注你想做的事情,这应该有效:

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