Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如果行中的任何值为0,如何删除整行_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 3.x 如果行中的任何值为0,如何删除整行

Python 3.x 如果行中的任何值为0,如何删除整行,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,在下面的示例中,我只想保留第1行和第2行 我想删除列中任何位置都为0的所有行: kt b tt mky depth 1 1 1 1 1 4 2 2 2 2 2 2 3 3 3 0 3 3 4 0 4 0 0 0 5 5 5 5 5 0 输出应如下所示: kt b tt mky depth 1 1 1 1 1 4 2 2 2 2 2 2

在下面的示例中,我只想保留第1行和第2行 我想删除列中任何位置都为0的所有行:

kt  b   tt  mky depth
1   1   1   1   1   4
2   2   2   2   2   2
3   3   3   0   3   3
4   0   4   0   0   0
5   5   5   5   5   0

输出应如下所示:

kt  b   tt  mky depth
1   1   1   1   1   4
2   2   2   2   2   2

我试过:

df.loc[(df!=0).any(axis=1)] 

但只有当行的所有对应列都为0时,它才会删除该行。如果确实接近,则需要检查每行的所有
True
s:

df = df.loc[(df!=0).all(axis=1)] 
print (df)
   kt  b  tt  mky  depth
1   1  1   1    1      4
2   2  2   2    2      2
详细信息

print (df!=0)
      kt     b     tt    mky  depth
1   True  True   True   True   True
2   True  True   True   True   True
3   True  True  False   True   True
4  False  True  False  False  False
5   True  True   True   True  False

print ((df!=0).all(axis=1))
1     True
2     True
3    False
4    False
5    False
dtype: bool
对于掩码已更改的行,至少检查一个
True
,df==0,并通过
~
反转的替代解决方案:

df = df.loc[~(df==0).any(axis=1)] 

可能再次复制它的@jezrael the savior:)谢谢