我有一个带有nan值的数据数组
我想删除带有nan值的行。我想要这个输出:
仅保留不包含nan值的行。
我尝试使用此代码
input = input[~np.isnan(input)]
但是,这些行并未删除。
我也用过
a = input[complete.cases(input), ]
但是发生错误。 NameError:名称“ complete”未定义
答案 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。