NaN和None之间有什么区别?我正在使用pandas读取csv文件的两列,readcsv()然后将值分配给字典。列包含数字和字母的字符串。偶尔会出现一个单元格为空的情况。在我看来,读取该字典条目的值应该是None,而是nan分配。当然,None它更具描述性,因为它具有空值,而nan只是说读取的值不是数字。我的理解是否正确,None和之间的区别是nan什么?为什么nan分配而不是None?此外,我的字典检查任何空单元格一直在使用numpy.isnan():for k, v in my_dict.iteritems():
if np.isnan(v):但是这给了我一个错误,说我不能使用这个检查v。我想这是因为要使用整数或浮点变量,而不是字符串。如果是这样,我该如何检查v“空单元格”/ nan案例?
3 回答

30秒到达战场
TA贡献1828条经验 获得超6个赞
NaN
可以用作数学运算的数值,而None
不能(或至少不应该)。
NaN
是一个数值,如IEEE 754浮点标准中所定义。 None
是一个内部Python tipe(NoneType
),在这种情况下更像是“不存在”或“空”而不是“数字无效”。
其中的主要“症状”是,如果你对包含NaN的数组执行平均值或求和,即使是单个数组,也会得到NaN作为结果......
另一方面,您不能使用None
操作数执行数学运算。
因此,根据具体情况,您可以使用None
一种方法告诉您的算法不要在计算时考虑无效或不存在的值。这意味着算法应该测试每个值以查看它是否是None
。
NumPy的有一些功能,以避免NaN值污染的结果,如nansum
和nan_to_num
例如。
添加回答
举报
0/150
提交
取消