
px = [int(i) for i in element.get('polygon_x').split(" ")]
py = [int(i) for i in element.get('polygon_y').split(" ")]
pdraw.polygon(list(zip(px,py)), fill=colormap[label], outline=colormap[label])
上面的代码在处理包含NaN数据和2.155000e+02数据时会出错。NaN和2.155000e+02对应的数据类型必须是float不能是int。所以上述代码修改为:
px = [i for i in element.get('polygon_x').split(" ")]
py = [i for i in element.get('polygon_y').split(" ")]
px_py_list = []
for x, y in list(zip(px, py)):
#if np.isnan(x) and np.isnan(y):
#if pd.isnull(x) or pd.isnull(y):
if math.isnan(float(x)) or math.isnan(float(y)):
print(x, y)
else:
px_py_list.append((np.round(float(x)), np.round(float(y))))
pdraw.polygon(px_py_list, fill=colormap[label], outline=colormap[label])
判断是否是NaN数据,math.isnan()比np.isnan()和pd.isnull()好用。np.isnan()容易出现错误。
参考资料
ValueError: invalid literal for int() with base 10
python判断数据框中某元素是否为‘nan
如何检查python中的值是否为nan?

本文介绍了一种处理图像绘制中NaN值和科学计数法数据的方法,通过使用math.isnan()来判断并转换这些特殊数值,确保了绘制过程的准确性。
5万+

被折叠的 条评论
为什么被折叠?



