我有一个类似
的文件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是最后一列的索引。
那么有一种大熊猫式的方法吗?
答案 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)]