Python 获取错误时如何删除NaN:ValueError:Input包含NaN
我正在尝试使用Python 获取错误时如何删除NaN:ValueError:Input包含NaN,python,nan,Python,Nan,我正在尝试使用MinMaxScaler()将数据缩放到0-1之间,方法是: x_scaling = x_scale.transform(x) print("Min:", np.min(x_scaling)) print("Max:", np.max(x_scaling)) 我的trackback错误消息是: --------------------------------------------------------------------------- Value
MinMaxScaler()
将数据缩放到0-1之间,方法是:
x_scaling = x_scale.transform(x)
print("Min:", np.min(x_scaling))
print("Max:", np.max(x_scaling))
我的trackback错误消息是:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-75-c862a09c2cc2> in <module>()
--> 120 x_scaling = x_scale.transform(x)
121
122 print("Min:", np.min(x_scaling))
~/anaconda3_501/lib/python3.6/site-packages/sklearn/preprocessing/data.py in transform(self, X)
365 check_is_fitted(self, 'scale_')
366
--> 367 X = check_array(X, copy=self.copy, dtype=FLOAT_DTYPES)
368
369 X *= self.scale_
~/anaconda3_501/lib/python3.6/site-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, warn_on_dtype, estimator)
451 % (array.ndim, estimator_name))
452 if force_all_finite:
--> 453 _assert_all_finite(array)
454
455 shape_repr = _shape_repr(array.shape)
~/anaconda3_501/lib/python3.6/site-packages/sklearn/utils/validation.py in _assert_all_finite(X)
42 and not np.isfinite(X).all()):
43 raise ValueError("Input contains NaN, infinity"
---> 44 " or a value too large for %r." % X.dtype)
45
46
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
如果这是一个问题,因为错误消息指出了各种可能性,我能得到帮助解决这个问题将不胜感激 您要使用和:
返回数组的最小值或沿轴的最小值,忽略任何NaN。当遇到所有NaN切片时,将引发RuntimeWarning,并为该切片返回NaN
e、 g.创建一个忽略NAN的自定义定标器,如下所示:
x_std = (x - np.nanmin(x))/(np.nanmax(x) - np.nanmin(x))
x_scaled = x_std * (max - min) + min
其中min,max=feature\u range.
yourDF.fillna(0)
?您可以使用dropna()
或fillna()
?@Rakesh如果所有值都是正值,那么执行。fillna(0)
然后取最小值将始终返回0。df.fillna(0)工作正常!!有可能看到这样一个例子吗?或者什么时候我可以把它添加到工作中?谢谢你的回复。假设我正确理解了这个解决方案。我做到了:x_std=(x-np.nanmin(x))/(np.nanmax(x)-np.nanmin(x))x_scaled=x_std*(x_test-x_test)+x_test这就是你的意思吗?如果是这样,我的最小值和最大值都是NaN?如果我按原样粘贴代码,我会得到错误“TypeError:不支持的操作数类型-:“内置函数或方法”和“内置函数或方法”min
和max`都是内置函数,因此,使用它们作为变量名是不好的做法。
x_std = (x - np.nanmin(x))/(np.nanmax(x) - np.nanmin(x))
x_scaled = x_std * (max - min) + min