如何删除元素等于特定值的行

时间:2015-07-30 04:16:59

标签: pandas

我有一个类似

的文件
1618246950  0.000   0.000   0.003   0.000   0.000   0.000   0   0   -1  -1  -1  -1  -1  -1  -1  -1  9   0
1618387251  0.000   0.000   0.000   0.000   0.021   0.012   0   0   -1  -1  -1  -1  -1  -1  -1  -1  0   0
1618436689  0.000   0.000   0.000   0.000   0.000   0.000   1   0   -1  -1  -1  -1  -1  -1  -1  -1  9   0
1618494414  0.005   0.002   0.001   0.000   0.002   0.005   0   0   -1  -1  -1  -1  -1  -1  -1  -1  1   0
1618499491  0.000   0.000   0.001   0.000   0.000   0.000   0   0   -1  -1  -1  -1  -1  -1  -1  -1  0   0

我想删除包含等于-1的元素的行。

如果第1列等于-1,则以下代码可能会删除行,但每列可能为-1。

df=df[df[1] != -1.0 ]

for i in range(1,15)
   df=df[df[i] != -1.0 ]

15是最后一列的索引。

那么有一种大熊猫式的方法吗?

2 个答案:

答案 0 :(得分:2)

这个怎么样:

df=df[-df.applymap(lambda x: x==-1).any(axis=1)]

答案 1 :(得分:2)

不幸的是,您的所有示例数据都包含元素等于减1的行,因此您应该返回一个空的DataFrame。

然而,我认为你应该实现这个目标:

df_new = df[df.apply(lambda x: x != -1, axis=1).all(axis=1)]