热线电话:13121318867

登录
2019-03-05 阅读量: 710
如何从任何列中存在特定字符串的数据框中获取行

我的数据帧中包含name,age,Task1,Task2,Task3。现在我需要得到所有的满足在任何一个字符串值的行Task1,Task2,Task3列。说我想检查'Drafting',关键词。如果'Drafting'作为任何这些列值的一部分存在,则必须将整行添加到结果帧中。

我试过isin()但我得到了真或假。我需要提取包含特定关键字的'N'行。我试过了,

df.columns[df.Task1.str.contains("Drafting")]但这比较并给出了单一栏目。任何人都知道如何使用str.contains或任何其他方法来比较列的字符串值并获取满足检查条件的所有行。

Name Age Task1 Task2 Task3

0 Ann 43 Drafting a Letter sending paking

1 Juh 29 sending paking Letter Drafting

2 Jeo 42 Pasting sending paking

3 Sam 59 sending pasting Letter Drafting

我需要检查关键字'Drafting'是否存在于任何列中[该列包含3到4个单词,需要检查这个单词/句子中是否存在Drafting]; 结果应该是:

Name Age Task1 Task2 Task3

0 Ann 43 Drafting a Letter sending paking

1 Juh 29 sending paking Letter Drafting

3 Sam 59 sending pasting Letter Drafting

解决办法:或者只是(注意这将检查整个df而不是特定的列):

df[df.astype(str).apply(lambda x: x.str.contains('Drafting')).any(axis=1)]

#for case insensitive use below

#df[df.astype(str).apply(lambda x: x.str.contains('Drafting',case=False)).any(axis=1)]

Name Age Task1 Task2 Task3

0 Ann 43 Drafting a Letter sending paking

1 Juh 29 sending paking Letter Drafting

3 Sam 59 sending pasting Letter Drafting

7.7757
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子