Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在混合对象类型中查找空值_Python_Numpy - Fatal编程技术网

Python 在混合对象类型中查找空值

Python 在混合对象类型中查找空值,python,numpy,Python,Numpy,假设我有以下列表,我想从中识别空值: >>> import numpy as np >>> MyList=['Apple',np.nan,4,100.4] >>> MyList ['Apple', nan, 4, 100.4] >>> 由于我的列表包含一个字符串,因此函数np.isnan()将无法工作。因此,我编写了一个函数,首先检查该项是否为浮点,然后检查它是否为null >>> def isnull

假设我有以下列表,我想从中识别空值:

>>> import numpy as np
>>> MyList=['Apple',np.nan,4,100.4]
>>> MyList
['Apple', nan, 4, 100.4]
>>> 
由于我的列表包含一个字符串,因此函数
np.isnan()
将无法工作。因此,我编写了一个函数,首先检查该项是否为浮点,然后检查它是否为null

>>> def isnull(x):
...     if type(x)==np.float:
...         return np.isnan(x)
...     else:
...         return False
... 
>>> [isnull(x) for x in MyList]
[False, True, False, False]
>>> 

这是最好的方法吗?

您最好还是抓住
类型错误

def isnull(x):
    try:
        return np.isnan(x)
    except TypeError:
        return False

这并不是一个很大的改进,但我认为大多数pythonistas在看到
type(something)==somethine\u type

时会有点畏缩,你可能最好还是抓住
TypeError

def isnull(x):
    try:
        return np.isnan(x)
    except TypeError:
        return False

这并不是一个很大的改进,但我认为大多数pythonistas在看到dtype=object的numpy数组时会有些畏缩。你可能想考虑它首先使用熊猫到原生(FLUAT64)类型,沿着线< /P>
import pandas as pd
pd.to_numeric(MyList, errors='coerce')

指定errors='concurve'以强制无法解析为数值的字符串变为NaN。列类型应该是dtype:float64,然后
np.isnan()
check应该可以工作,而且速度也会更快

您有dtype=object的numpy数组。你可能想考虑它首先使用熊猫到原生(FLUAT64)类型,沿着线< /P>
import pandas as pd
pd.to_numeric(MyList, errors='coerce')
指定errors='concurve'以强制无法解析为数值的字符串变为NaN。列类型应该是dtype:float64,然后
np.isnan()
check应该可以工作,而且速度也会更快