dataframe数据报NaN和infinite错误

问题描述:

    

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

 

分析问题:

    开始以为是输入数据的问题,经过反复修改输入数据,发现问题依然存在。于是想看看报错处的数据长什么样:

    

    dataframe数据报NaN和infinite错误_第1张图片

    发现输入数据确实存在nan值,进一步分析发现是由分箱范围不当引起的

    

 

解决问题:

    

 

问题总结:

    

    从上面示例可以看出,按区间划分数据是左开右闭的,data数据中的0值没有没有进行转换,从而变成NaN值了,如果我们把区间往左边扩展一个区域:

    dataframe数据报NaN和infinite错误_第2张图片

    此时NaN值消失了。

    查一下cut的用法:

    dataframe数据报NaN和infinite错误_第3张图片

    有一个right参数控制有边界是开还是闭。

    dataframe数据报NaN和infinite错误_第4张图片

dataframe数据报NaN和infinite错误_第5张图片

你可能感兴趣的:(算法,python,机器学习)