如果行中的任何值等于零,则删除pandas数据帧中的行

azu*_*ric 14 python pandas

如果行中的任何值等于零,如何删除行?

我通常会将df.dropna()用于NaN值,但不确定如何使用"0"值.

acu*_*ner 24

我认为最简单的方法是查看所有值不等于0的行:

df[(df != 0).all(1)]
Run Code Online (Sandbox Code Playgroud)


DSM*_*DSM 15

您可以创建一个布尔框架,然后使用any:

>>> df = pd.DataFrame([[1,0,2],[1,2,3],[0,1,2],[4,5,6]])
>>> df
   0  1  2
0  1  0  2
1  1  2  3
2  0  1  2
3  4  5  6
>>> df == 0
       0      1      2
0  False   True  False
1  False  False  False
2   True  False  False
3  False  False  False
>>> df = df[~(df == 0).any(axis=1)]
>>> df
   0  1  2
1  1  2  3
3  4  5  6
Run Code Online (Sandbox Code Playgroud)


小智 15

虽然已经晚了,但其他人可能会发现它有帮助。我有类似的问题。但以下对我来说效果最好。

df =pd.read_csv(r'your file')
df =df[df['your column name'] !=0]
Run Code Online (Sandbox Code Playgroud)

参考: 删除熊猫数据框中全为零的行, 请参阅@ikbel benabdessamad