我的熊猫数据框看起来像这样:
'a', 'b', 'c' ,'d', ...., 'z'
-----------------------------
1 , 2 , 3 , 4 , ...., 6
1 , 0 , 3 , 4 , ...., 6
0 , 0 , 0 , 4 , ...., 6
如果我想使用单列过滤,例如a
不能为零,我可以这样做
`df = df[df.a != 0]`
但是,如果我需要使用多列进行过滤,例如a
和b
不能为零?
我想要这样的结果:
'a', 'b', 'c' ,'d', ...., 'z'
-----------------------------
1 , 2 , 3 , 4 , ...., 6
1 , 0 , 3 , 4 , ...., 6
答案 0 :(得分:1)
您可以将带有0
的已筛选列与ne
(与!=
相同)用于新布尔数据框架,然后检查每行至少有一个True
{ {3}}:
print (df[['a','b']])
a b
0 1 2
1 1 0
2 0 0
print (df[['a','b']].ne(0))
a b
0 True True
1 True False
2 False False
print (df[['a','b']].ne(0).any(1))
0 True
1 True
2 False
dtype: bool
df = df[df[['a','b']].ne(0).any(1)]
print (df)
a b c d z
0 1 2 3 4 6
1 1 0 3 4 6