ValueError: Input contains NaN, infinity or a value too large for dtype('float64')问题解决
2017-12-21 16:17
1911 查看
问题背景
博主在调用sklearn.metrics.roc_auc_score()计算AUC时出现了这个报错问题分析
错误提示说数据里面包含空值或者无穷大的数据,参与计算的两列数据有一列不是1就是0,另一列是楼主自己写的sigmoid函数计算出来的值,但是sigmoid函数不太可能算出无穷大的数值,所以关注是不是有哪个数出问题算出空值了。先检查有哪些列存在空值
data = pd.read_csv('filename.csv') print(data.isnull().any())
打印出来下面的结果:
date False predict True time False true_value False measure False dtype: bool
说明predict列存在空值,确实是sigmoid函数算出来的结果出了问题。
接下来我们可以查看出现空值的是哪些记录
predict_null = pd.isnull(data['predict']) data_null = data[predict_null == True] print(data_null)
打印出来下面的结果:
date predict time true_value 301258 2017-08-22 07:14:31 NaN 2017-08-22 07:14:31 0 301259 2017-08-22 07:14:46 NaN 2017-08-22 07:14:46 0 301260 2017-08-22 07:15:01 NaN 2017-08-22 07:15:01 0 301261 2017-08-22 07:15:16 NaN 2017-08-22 07:15:16 0 301262 2017-08-22 07:15:31 NaN 2017-08-22 07:15:31 0
之后就可以到原始数据里找计算结果在哪里出错了。
博主出错的原因是输入sigmoid函数的中间计算结果存在除0的问题,所以在sigmoid计算之后返回了NaN,但是参与计算的是一列数,所以在程序运行过程中没有打印除0的报错。
相关文章推荐
- ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
- ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
- Kaggle-ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
- ValueError: Input contains NaN, infinity or a value too large for dtype('float32'64). 一般处理方式
- Input contains NaN, infinity or a value too large for dtype('float64')
- Kaggle-ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
- Linux mount Windows共享后编译出现“Value too large for defined data type”的问题 (zz)
- linux c之关于 Value too large for defined data type的解决
- GCC编译“Value too large for defined data type”错误解决办法
- ls:Value too large for defined data type 解决办法
- VMware共享文件夹编译出现“Value too large for defined data type”错误的解决办法
- Linux mount Windows共享后编译出现“Value too large for defined data type”的问题 (zz)
- GCC编译“Value too large for defined data type”错误解决办法
- 【问题解决】Packet for query is too large (1165 > 1024). You can change this value
- GCC编译“Value too large for defined data type”错误解决办法
- 共享文件夹内编译报”Value too large for defined data type”错误的解决办法
- mount目录访问出现“Value too large for defined data type”错误解决办法
- MySQL Packet for query is too large 问题及解决方法
- Undefined function or method ' ' for input arguments of type 'double' ---错误解决办法
- 在Ubuntu/Linux环境下使用MySQL:解决com.mysql.jdbc.PacketTooBigException: Packet for query is too large的问题