我有一个如下所示的数据框:
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)]