2016-07-30 24 views
-1

I wie untenNaN in Mapper - name 'nan' ist nicht

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

und

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

Was falsch machen definiert ist? Ist ein Fehler in der Programmierung oder in der Datei?

Antwort

6

Python hat keinen eingebauten Namen nan, noch gibt es ein Schlüsselwort.

Es sieht so aus, als hätten Sie vergessen, es zu importieren; numpy definiert einen solchen Namen:

from numpy import nan 

Von den lokalen Namen df schließe ich Sie wahrscheinlich Pandas verwenden; Pandas Dokumentation verwendet normalerweise np.nan, wobei np das numpy Modul ist, das mit import numpy as np importiert wird. Sehen Sie ihre 10 Minute to pandas intro zum Beispiel.

0

Sie haben nicht definiert, was die Variable nan ist, also wirft Python eine NameError. Wenn Sie überprüfen möchten, ob eine Nummer NaN (keine Nummer) ist, verwenden Sie math.isnan(x), wobei x ein Float ist.