检查pandas中的'NaN'值时排除'None'

dpk*_*dpk 2 python numpy nan pandas

我收拾的数据集NaN在其上运行线性回归,在这个过程中,我更换了一些NaNNone.执行此操作后,我NaN使用以下代码检查剩余列的值,其中houseprice是数据帧的名称

def cols_NaN():
    return houseprice.columns[houseprice.isnull().any()].tolist()
print houseprice[cols_NaN()].isnull().sum()
Run Code Online (Sandbox Code Playgroud)

问题是上述结果None也包括值.我想选择那些有NaN值的列.我怎样才能做到这一点?

piR*_*red 6

我唯一能想到的是检查元素是否float因为np.nan是类型float而且为空.

考虑数据帧 df

df = pd.DataFrame(dict(A=[1., None, np.nan]), dtype=np.object)

print(df)

      A
0     1
1  None
2   NaN
Run Code Online (Sandbox Code Playgroud)

然后我们测试两者floatisnull

df.A.apply(lambda x: isinstance(x, float)) & df.A.isnull()

0    False
1    False
2     True
Name: A, dtype: bool
Run Code Online (Sandbox Code Playgroud)