Reputation: 4077
I have this dictionary:
dict_new =
{'extracted_layout': [nan, nan, nan, nan, nan, nan, nan, nan, nan, 'shyamanna layout', nan, nan, nan, nan, 'm t s layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'green glen layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'h s r layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'vikas layout', 'annaiah reddy layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'andhra muniyappa layout', nan, nan, nan, nan, nan, 'lake city layout', nan, 'h s r layout'}
It has one key, extracted_layout
and its values are in a list that is stuffed with nans . How do I get rid of them?
Upvotes: 2
Views: 2570
Reputation: 325
list_dict = [{"year": 1916, "age": 10},
{"year": 1826, "age": 'NaN'},
{"year": 'NaN', "age": 7}]
for my_dict in list_dict:
for k in my_dict:
if isnan(float(my_dict[k])):
my_dict[k] = 0
Upvotes: 0
Reputation: 369304
If nan
is float nan, use math.isnan
to filter it out:
>>> import math
>>> nan = float('nan')
>>> nan
nan
>>> math.isnan(nan)
True
>>> math.isnan(1)
False
import math
dict_new['extracted_layout'] = [
x
for x in dict_new['extracted_layout']
if not (isinstance(x, float) and math.isnan(x))
]
Upvotes: 5