Efficace de vérifier si l'objet arbitraire NaN en Python / numpy / pandas?

Mes tableaux numpy utilisation np.nan pour désigner des valeurs manquantes. Comme je l'itération sur l'ensemble de données, j'ai besoin de détecter de telles valeurs manquantes et de les gérer d'une manière particulière.

Naïvement j'ai utilisé numpy.isnan(val), qui fonctionne bien, sauf val n'est pas parmi le sous-ensemble de types pris en charge par numpy.isnan(). Par exemple, les données manquantes peuvent se produire dans les champs de type chaîne, dans ce cas j'obtiens:

>>> np.isnan('some_string')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Not implemented for this type

Autres que d'écrire un cher wrapper qui intercepte l'exception et retourne False, il est un moyen de gérer cela d'une manière élégante et efficace?

  • pandas a pandas.isnull(): je ne sais pas si cela répond à vos besoins, de sorte que certaines données de l'exemple peut-être bon.
  • pandas.isnull() semble fonctionner parfaitement. Le seul type de données, je suis en train de traiter avec qui rompt numpy.isnan() est une chaîne, et pandas.isnull() gère bien. En fait, il semble gérer le bien de tous n'importe quel objet je l'ai jeté à elle. Y avait-il des questions que vous avez été inquiété? Sinon, vous pouvez soumettre vos commentaires à part entière réponse, car il me semble que la réponse canonique, au moins pour les pandas utilisateurs.
InformationsquelleAutor Dun Peal | 2013-09-08