如何在python中删除具有nan值的行

时间:2020-10-07 02:19:07

标签: python numpy

我有一个带有nan值的数据数组

enter image description here

我想删除带有nan值的行。我想要这个输出:

enter image description here

仅保留不包含nan值的行。

我尝试使用此代码

input = input[~np.isnan(input)]

但是,这些行并未删除。

我也用过

a = input[complete.cases(input), ]

但是发生错误。 NameError:名称“ complete”未定义

3 个答案:

答案 0 :(得分:1)

数据框:

   values_1  values_2
0     700.0       NaN
1       NaN     150.0
2     500.0     350.0
3       NaN     400.0
4    1200.0    5000.0

您可以尝试以下方法:

df = df.dropna()
df = df.reset_index(drop=True)

输出:

   values_1  values_2
0     500.0     350.0
1    1200.0    5000.0

答案 1 :(得分:1)

将numpy数组指定为

import numpy as np
input = np.array([[1,1,0,np.nan], [1,1,1,30], [1,0,1,np.nan]])

尝试

output = input[~np.isnan(input).any(axis=1)]

输出为

[[ 1.  1.  1. 30.]]

答案 2 :(得分:0)

尝试一下

input = input [〜np.isnan(input).any(axis = 1)]

any(axis = 1)通过对整个行进行逻辑或运算将m * n数组减少为n。