Python Can';t删除熊猫中具有特定条件的行

Python Can';t删除熊猫中具有特定条件的行,python,pandas,dataframe,Python,Pandas,Dataframe,我(再次)遇到了熊猫数据帧处理的问题 四列:Name,Sample,A1\u-TOP,A2\u-TOP 有时在A1_-TOP或A2_-TOP中,我有一个间隙。间隙是一个符号“-”或“0”。 我写了一行代码来删除表格中包含间隙的行 a=我的数据帧 我的代码: a = a.loc[(a['A1_TOP'] != '-') | (a['A2_TOP'] != '-')] a = a.loc[(a['A1_TOP'] != '0') | (a['A2_TOP'] != '0')] 但当我运行它时,我没

我(再次)遇到了熊猫数据帧处理的问题

四列:
Name
Sample
A1\u-TOP
A2\u-TOP

有时在
A1_-TOP
A2_-TOP
中,我有一个间隙。间隙是一个符号“-”或“0”。 我写了一行代码来删除表格中包含间隙的行

a=我的数据帧

我的代码:

a = a.loc[(a['A1_TOP'] != '-') | (a['A2_TOP'] != '-')]
a = a.loc[(a['A1_TOP'] != '0') | (a['A2_TOP'] != '0')]
但当我运行它时,我没有出错。结果是数据帧仍然存在差距。昨天我有另一个文件要处理,这部分代码运行良好。今天没有

例如,我在数据框的第一行有一个间隙:

Name Sample A1_TOP A2_TOP
Adam  Smith   -     B    
那一行应该被删除。但事实并非如此<代码>类型(df['A1_TOP][0])=str所以类型没有问题

有人能告诉我这个代码有什么问题吗

编辑: 如果我这样拆分命令:

a = a.loc[a['A1_TOP'] != '-']
a = a.loc[a['A2_TOP'] != '-']

它是有效的。。。但是为什么第一种方法不呢?

应该是
&

a = a.loc[(a['A1_TOP'] != '-') & (a['A2_TOP'] != '-')]

里面有空白吗?所以它可能是“-`not'-'谢谢你的回答,但不是:(
a['A1_TOP'][1]='-'
。哦……这是工作。但是为什么?它不是“AND”?它不应该是这样,只有当两列中都有间隙时它才会运行?@Artur是的,或者说它们中的任何一个满足条件,它将返回真实值