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)] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |