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

时间:2015-08-18 11:55:51

标签: python regex pandas

我的目标是找出填充了文本字符串(新闻文章的标题)的列中可能存在的某些关键字组合。然后我想用条形图绘制频率。

我使用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')

给出了:

enter image description here

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

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

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

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

1 个答案:

答案 0 :(得分:4)

如果我关注你想做什么,这应该有效:

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