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

时间:2018-09-03 11:54:11

标签: python pandas

我正在尝试像这样标准化我的数据:

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给出的命令,我确实确定自己没有NaNInfinity。此外,在检查尺寸时,csv中没有空格或类似的东西

那么,问题出在哪里?

1 个答案:

答案 0 :(得分:1)

您还可以检查NaNinf

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')