加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Pandas过滤数据基于开始时出现的内容

发布时间:2020-12-20 11:06:55 所属栏目:Python 来源:网络整理
导读:我有一个如下所示的数据框: df4 = pd.DataFrame({'Q':['chair','desk','-----monitor','chair'],'R':['red','-- use blue or dark blue','yellow','purple'],'S': ['-- is english spoken?','german','spanish','english']}) Q R S0 chair Red -- is englis
我有一个如下所示的数据框:

df4 = pd.DataFrame({'Q':['chair','desk','-----monitor','chair'],'R':['red','-- use blue  or dark blue','yellow','purple'],'S': ['-- is english spoken?','german','spanish','english']})


              Q                       R                                S
0         chair                     Red            -- is english spoken?
1          desk    -- blue or dark blue                           german
2  -----monitor                  yellow                          spanish
3         chair                  purple                          english

我想要归还的内容:

Q                       R                                S
3         chair                  purple                          english

如果任何列的“ – ”值在开头出现2次或更多次,我想过滤掉整行.

我找到了一个过滤数值的线程,但有没有办法过滤掉特殊字符?特别是正则表达式?

编辑#1:

如果“ – ”在一开始出现2次或更多次,我只想删除行.如果该值出现在某些文本的中间,那很好.

假设我的数据框看起来像这样:

Q                       R                                S
0         chair                     Red            -- is english spoken?
1          desk       blue or dark blue                           ger--man
2  -----monitor                  yellow                          spanish
3         chair                  purple                          english

我会回来的:

Q                       R                                S
1          desk       blue or dark blue                           ger--man
3         chair                  purple                          english

编辑#2:

我试过这个:

df4[~df4.Q.str.startswith(('--'))]

但这仅适用于1列,而不是全部.

解决方法

将applymap与in和any一起使用

df4[~df4.applymap(lambda x : '--' in x).any(1)]
Out[287]: 
       Q       R        S
3  chair  purple  english

更新仅在开头排除某些内容.

df4[~df4.applymap(lambda x : str.startswith(x,'--')).any(1)]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读