How can I remove Nan from list Python/NumPy
numpy, python
Solution
The question has changed, so too has the answer:
Strings can't be tested using `math.isnan` as this expects a float argument. In your `countries` list, you have floats and strings.
In your case the following should suffice:
cleanedList = [x for x in countries if str(x) != 'nan']
Old answer
In your `countries` list, the literal `'nan'` is a string not the Python float `nan` which is equivalent to:
float('NaN')
In your case the following should suffice:
cleanedList = [x for x in countries if x != 'nan']
Problem
I have a list that countain values, one of the values I got is 'nan' ``` countries= [nan, 'USA', 'UK', 'France'] ``` I tried to remove it, but I everytime get an error ``` cleanedList = [x for x in countries if (math.isnan(x) == True)] TypeError: a float is required ``` When I tried this one : ``` cleanedList = cities[np.logical_not(np.isnan(countries))] cleanedList = cities[~np.isnan(countries)] TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe'' ```