当我缩放数据时,输入包含NaN、无穷大或对dtype('float64')太大的值

2024-06-01 06:13:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着像这样规范化我的数据:

scaler = MinMaxScaler()
trainX=scaler.fit_transform(X_data_train)

我得到一个错误:

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

X_data_train是大小为(95538, 550)的pandas数据帧。真正奇怪的是当我写作的时候

^{pr2}$

它给出了-5482.4473,同样地,对于最大值,我得到了28738212.0,这对我来说似乎不是特别高的值。。。在

此外,根据54+投票的answer给出的命令,我确实检查了我是否确定没有NaN或{}。而且,我的csv或类似的东西中没有空格,因为我检查了维度

那么,问题在哪里??在


Tags: 数据inputdata错误transformtrainnan规范化
1条回答
网友
1楼 · 发布于 2024-06-01 06:13:12

您还可以检查NaNs和inf

df = pd.DataFrame({'B':[4,5,4,5,5,np.inf],
                   'C':[7,8,9,4,2,3],
                   'D':[np.nan,3,5,7,1,0],
                   'E':[5,3,6,9,2,4]})

print (df)
          B  C    D  E
0  4.000000  7  NaN  5
1  5.000000  8  3.0  3
2  4.000000  9  5.0  6
3  5.000000  4  7.0  9
4  5.000000  2  1.0  2
5       inf  3  0.0  4

nan = df[df.isnull().any(axis=1)]
print (nan)
     B  C   D  E
0  4.0  7 NaN  5

inf = df[df.eq(np.inf).any(axis=1)]
print (inf)
     B  C    D  E
5  inf  3  0.0  4

如果要查找行中至少有一个NaN的所有索引:

^{pr2}$

和列:

print (df.columns[np.isnan(df).any()])
Index(['D'], dtype='object')

相关问题 更多 >