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

标签 python pandas numpy nan

我正在清理 NaN 的数据集以对其运行线性回归,在此过程中,我将一些 NaN 替换为 None。 执行此操作后,我使用以下代码检查具有 NaN 值的剩余列,其中 houseprice 是数据框的名称

def cols_NaN():
    return houseprice.columns[houseprice.isnull().any()].tolist()
print houseprice[cols_NaN()].isnull().sum()

问题是上面的结果还包括 None 值。我想选择那些具有 NaN 值的列。我该怎么做?

最佳答案

我唯一能想到的就是检查元素是否为 float,因为 np.nan 的类型为 float 并且为 null。

考虑数据框 df

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

print(df)

      A
0     1
1  None
2   NaN

然后我们测试是否 floatisnull

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

0    False
1    False
2     True
Name: A, dtype: bool

关于python - 检查 pandas 中的 'None' 值时排除 'NaN',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41974408/

相关文章:

python - 使用tensorflow tf.control_dependency 和 tf.layers.batch_normalization 出现错误

python - 我应该用下划线开始一个辅助函数吗?

python - Pandas:concat 函数删除了数据帧的先前排序

python - 从 pandas 数据帧写入 .csv 文件,并使用连续空格作为分隔符

python - 使用 Pandas Dataframes 根据间隙长度计算事件日期

python - 无法从pycharm导入numpy

python - 使用 Python 类型模块指定序列或列表的长度

python - 从脚本运行 scrapy 时内存溢出

python - 在常见的实现中,realloc 实际上会缩小缓冲区吗?

python - 获取 numpy 二维数组中包含非屏蔽值的第一行和最后一行和列的索引