2016-07-30 36 views
-1

我做如下楠映射器 - 名 '南' 沒有定義

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 

有什麼不對?是編碼還是文件錯誤?

回答

6

Python沒有內置名稱nan,也沒有關鍵字。

看起來好像你忘了導入它; numpy定義了這樣一個名字:

from numpy import nan 

從本地名稱df我推斷你可能正在使用的大熊貓;大熊貓的文檔通常使用np.nan,其中np是導入import numpy as npnumpy模塊。例如,請參閱他們的10 Minute to pandas intro

0

您沒有定義變量nan是什麼,所以Python引發了一個NameError。如果要檢查數字是否爲NaN(不是數字),請使用math.isnan(x),其中x是一個浮點數。