dataframe数据报NaN和infinite错误

问题描述:

    dataframe数据报NaN和infinite错误

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

 

分析问题:

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

    dataframe数据报NaN和infinite错误

    dataframe数据报NaN和infinite错误

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

    dataframe数据报NaN和infinite错误

 

解决问题:

    dataframe数据报NaN和infinite错误

 

问题总结:

    dataframe数据报NaN和infinite错误

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

    dataframe数据报NaN和infinite错误

    此时NaN值消失了。

    查一下cut的用法:

    dataframe数据报NaN和infinite错误

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

    dataframe数据报NaN和infinite错误