映射器中的NaN - 未定义名称“nan”

时间:2016-07-30 10:08:19

标签: python nan

我做如下

mapper = {'a': 'b', 'c': nan, 'd': 'e',  nan : nan}
df['b'] = [ mapper[x] for x in df['a'] ]
df['b'].value_counts()

NameError                                 Traceback (most recent call last)
<ipython-input-48-3862b2347ce7> in <module>()
NameError: name 'nan' is not defined

怎么了?编码或文件中有错误吗?

2 个答案:

答案 0 :(得分:12)

Python没有内置名称nan,也没有关键字。

看起来好像忘了导入它; numpy定义了这样一个名称:

from numpy import nan

从本地名称df我推断你可能正在使用熊猫; pandas的文档通常使用np.nan,其中np是使用numpy导入的import numpy as np模块。例如,请查看他们的10 Minute to pandas intro

答案 1 :(得分:0)

您没有定义变量NameError是什么,因此Python引发了NaN。如果您想检查某个数字是math.isnan(x)(不是数字),请使用x,其中{{1}}是浮点数。