我正在尝试像这样标准化我的数据:
scaler = MinMaxScaler()
trainX=scaler.fit_transform(X_data_train)
我收到此错误:
ValueError:输入包含NaN,无穷大或对于dtype('float64')而言太大的值。
X_data_train
是大小为(95538, 550)
的pandas DataFrame。真正奇怪的是,当我写
print (X_data_train.min().min())
它给出-5482.4473,并且对于最大值,我得到28738212.0,这对我来说似乎不是特别高的值...
此外,根据经过54次投票的answer给出的命令,我确实确定自己没有NaN
或Infinity
。此外,在检查尺寸时,csv
中没有空格或类似的东西
那么,问题出在哪里?
答案 0 :(得分:1)
您还可以检查NaN
和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
的所有索引:
print (df.index[np.isnan(df).any(axis=1)])
Int64Index([0], dtype='int64')
和列:
print (df.columns[np.isnan(df).any()])
Index(['D'], dtype='object')