我的目标是找出列中可能存在的某些关键字组合是否填充了文本字符串(新闻文章的标题).然后我想在条形图中绘制频率.
我使用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')
这使:
现在,我无法弄清楚如何组合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
>正则表达式与上述功能相结合.
解决方法:
如果我关注你想做的事情,这应该有效:
pvv_news = df[(df['desc'].str.contains("pvv"), case = True) &
((df['desc'].str.contains("nederland"), case = True) |
(df['desc'].str.contains("overheid"), case = True)) ]