from typing import Iterable
[docs]def is_nan_numeric(value: object) -> bool:
"""
Determines if **value** might be `nan` or `inf` or some other numeric value (i.e. which can be cast as `float`) that is not actually a number.
""" # noqa
try:
value = str(value)
value = float(value)
except Exception:
return False
try:
if isinstance(value, float):
a = int(value) # noqa
isnan = False
except Exception:
isnan = True
return isnan
def filter_nan_and_none(series: Iterable) -> list:
return [x for x in series if not is_nan_numeric(x) and x is not None]