一、报错:ValueError: cannot convert float NaN to integer
ValueError: cannot convert float NaN to integer
说明:
NaN
是一个特殊的浮点标记值,表示“不是数字”。一般来说,Python更喜欢引发异常而不是return NaN
,因此诸如sqrt(-1)
和log(0.0)
通常会引发而不是return的事情NaN
。但是,您可能会从其他库中获得此值。一个很好的例子可能是尝试从电子表格中的字符串单元格提取数字值。
标准Python提供了math.isnan(x)
可用来测试的工具NaN
。你既可以assert
反对,引发异常的时候才发现,或者你可以提供一个替代值的NaN
。
您似乎正在绘制图表。我的建议是专门尝试确定此问题(为什么会这样NaN
),然后编写一些代码来提供替换内容。
测试NaN
<span style="color:var(--highlight-color)"><code><span style="color:var(--highlight-keyword)">import</span> math, numpy
math.isnan(numpy.nan) </code></span>
解决:
import numpy
if numpy.isnan(value):
value = numpy.nan_to_num(value)
这会将NaN值更改为(可能为0.0),然后可以将其转换为整数。我可能会检查以确保将其设置为0对您的数据有效。