首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用str.contains搜索CSV文件列中的单词

使用str.contains搜索CSV文件列中的单词
EN

Stack Overflow用户
提问于 2021-06-01 21:20:08
回答 2查看 883关注 0票数 0

我有以下csv文件:

代码语言:javascript
复制
start_date,end_date,pollster,sponsor,sample_size,population,party,subject,tracking,text,approve,disapprove,url
    2020-02-02,2020-02-04,YouGov,Economist,1500,a,all,Trump,FALSE,Do you approve or disapprove of Donald Trump’s handling of the coronavirus outbreak?,42,29,https://d25d2506sfb94s.cloudfront.net/cumulus_uploads/document/73jqd6u5mv/econTabReport.pdf
    2020-02-02,2020-02-04,YouGov,Economist,376,a,R,Trump,FALSE,Do you approve or disapprove of Donald Trump’s handling of the coronavirus outbreak?,75,6,https://d25d2506sfb94s.cloudfront.net/cumulus_uploads/document/73jqd6u5mv/econTabReport.pdf
    2020-02-02,2020-02-04,YouGov,Economist,523,a,D,Trump,TRUE,Do you approve or disapprove of Donald Trump’s handling of the coronavirus outbreak?,21,51,https://d25d2506sfb94s.cloudfront.net/cumulus_uploads/document/73jqd6u5mv/econTabReport.pdf
    2020-02-02,2020-02-04,YouGov,Economist,599,a,I,Trump,,Do you approve or disapprove of Donald Trump’s handling of the coronavirus outbreak?,39,25,https://d25d2506sfb94s.cloudfront.net/cumulus_uploads/document/73jqd6u5mv/econTabReport.pdf
    2020-02-07,2020-02-09,Morning Consult,"",2200,a,all,Trump,TURE,Do you approve or disapprove of the job each of the following is doing in handling the spread of coronavirus in the United States? President Donald Trump,57,22,https://morningconsult.com/wp-content/uploads/2020/02/200214_crosstabs_CORONAVIRUS_Adults_v4_JB.pdf

和我想找到列"text“同时包含"Trump”和"coronavirus"的所有行

我使用的是str.contains()

代码语言:javascript
复制
approval_polls[approval_polls.text.str.contains("Trump", "coronavirus")]

似乎得到了正确的输出,但我不确定str.contains()是否可以将两个单词作为参数。

有人能帮我吗?

输出:

代码语言:javascript
复制
start_date  end_date    pollster    sponsor     sample_size     population  party   subject     tracking    text    approve     disapprove  url
0   2020-02-02  2020-02-04  YouGov  Economist   1500.0  a   all     Trump   FALSE   Do you approve or disapprove of Donald Trump’s...   42.0    29.0    https://d25d2506sfb94s.cloudfront.net/cumulus_...
1   2020-02-02  2020-02-04  YouGov  Economist   376.0   a   R   Trump   FALSE   Do you approve or disapprove of Donald Trump’s...   75.0    6.0     https://d25d2506sfb94s.cloudfront.net/cumulus_...
2   2020-02-02  2020-02-04  YouGov  Economist   523.0   a   D   Trump   FALSE   Do you approve or disapprove of Donald Trump’s...   21.0    51.0    https://d25d2506sfb94s.cloudfront.net/cumulus_...
EN

回答 2

Stack Overflow用户

发布于 2021-06-01 21:41:56

在您的示例中,所有行都包含两个关键字,因此应该将所有五行都返回。

通过调用contains('Trump', 'coronavirus')函数,您将得到文本列中包含“Trump”或“coronavirus”的所有行。若要只获取包含“Trump”和“coronavirus”的列,可以使用以下命令

代码语言:javascript
复制
df[df['text'].str.contains('Trump') & df['text'].str.contains('coronavirus')] 

或者您可以使用正则表达式,例如,

代码语言:javascript
复制
df[df['text'].str.contains(r'^(?=.*Trump)(?=.*coronavirus)')]
票数 2
EN

Stack Overflow用户

发布于 2021-06-01 22:03:57

您可以使用regex来完成此操作,但由于在regex中没有"AND“运算符的直接代表,所以可以使用某种精心设计的方式。

代码语言:javascript
复制
import re

approval_polls[approval_polls.text.str.contains('(?=.*trump)(?=.*coronavirus)', regex=True, flags=re.IGNORECASE)]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67796132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档