首页 > 解决方案 > 无法删除熊猫中具有特定条件的行

问题描述

我(再次)有一个在熊猫中进行数据帧处理的问题。

四列:Name, Sample, A1_TOP, A2_TOP.

有时在A1_TOPA2_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    

那行应该被删除。但事实并非如此。type(df['A1_TOP][0]) = str所以这不是类型的问题。

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

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

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

它有效......但为什么第一种方式不呢?

标签: pythonpandasdataframe

解决方案


应该是&吗?

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

推荐阅读