2016-07-30 14 views
-1

に定義されていない私が間違って何の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 

以下のようにしてください?コーディングやファイルに間違いがありますか?

答えて

6

Pythonには組み込みの名前nanがなく、キーワードもありません。

インポートを忘れたようです。 numpyは、このような名前を定義しますローカル名dfから

from numpy import nan 

私はあなたがおそらくパンダを使用している推測します。 pandasのドキュメントでは通常np.nanが使用されています。npimport numpy as npでインポートされたnumpyモジュールです。たとえば、10 Minute to pandas introを参照してください。

0

あなたは変数nanが何であるかを定義していないので、PythonはNameErrorを発生させます。数字がNaN(数字ではない)かどうかを確認する場合はmath.isnan(x)を使用してください。xはfloatです。