Изменить nan на None
Как заменить nan на None в списке q = [1,nan,nan]?
q = [None if i == nan else i for i in q]
Так не работает и nan = None тоже не выходит.
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Для чисел выражение i == i ложно в том случае когда i имеет значение nan. Во всех остальных случаях оно истинно.
https://ru.wikipedia.org/wiki/NaN#Свойства:
NaN не равен ни одному другому значению (даже самому себе). Благодаря этому один из распространённых, однако не очевидных, способов проверки результата на NaN — это сравнение полученной величины с самой собой.
q = [i if i == i else None for i in q]
Если вы хотите чтобы ваш код легко читался, то лучше писать более явно:
import math
q = [i if math.isnan(i) else None for i in q]