Python 如果行中的任何值等于零,则在数据帧中删除行
如果行中的任何值等于零,如何删除该行Python 如果行中的任何值等于零,则在数据帧中删除行,python,pandas,Python,Pandas,如果行中的任何值等于零,如何删除该行 我通常会将df.dropna()用于NaN值,但不确定如何使用“0”值。我认为最简单的方法是查看所有值都不等于0的行: df[(df != 0).all(1)] 您可以创建一个布尔帧,然后使用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
我通常会将df.dropna()用于NaN值,但不确定如何使用“0”值。我认为最简单的方法是查看所有值都不等于0的行:
df[(df != 0).all(1)]
您可以创建一个布尔帧,然后使用
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
假设一个简单的数据帧,如下所示:
df=pd.DataFrame([1,2,0,3,4,0,9])
选取非零值,将所有零值转换为nan并删除nan值
df=df[df!=0].dropna()
df
输出:
0
0 1.0
1 2.0
3 3.0
4 4.0
6 9.0
虽然已经很晚了,但其他人可能会觉得这很有帮助。 我也有类似的问题。但以下几点对我最有效
df =pd.read_csv(r'your file')
df =df[df['your column name'] !=0]
参考:
请参见@ikbel Benabdessaad我之所以选择这个答案,是因为它在编码方面是最有效的,但这两个答案似乎都是准确的。如果我们只想关注其中一列(或一组列),请认为这是最清晰的。