[issue19161] collections Counter handles nan strangely
Mark Dickinson
report at bugs.python.org
Fri Oct 4 15:19:41 CEST 2013
Mark Dickinson added the comment:
> perhaps collections.Counter should handle nans as a special case
I don't think that would be a good idea: I'd rather that collections.Counter didn't special case NaNs in any way, but instead treated NaNs following the same (admittedly somewhat awkward) rules that all the other Python collections do---namely, for NaNs, containment effectively works by object identity.
> I'm really using a pandas Series
Okay, that makes sense. It's a bit unfortunate that NumPy creates a new NaN object every time you read a NaN value out of an array, so that you get e.g.,
>>> from numpy import array, nan, isnan
>>> import numpy as np
>>> my_list = [1.2, 2.3, np.nan, np.nan]
>>> my_list[2] is my_list[3]
True
>>> my_array = np.array(my_list)
>>> my_array[2] is my_array[3]
False
Or even:
>>> my_array[2] is my_array[2]
False
I guess you're stuck with using Pandas functionality like `dropna` and `isnull` to deal with missing and non-missing values separately.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue19161>
_______________________________________
More information about the Python-bugs-list
mailing list