如何检查数据框是否有多个空列?

时间:2019-08-07 16:30:24

标签: python

我有一个相当大的数据集,其中包含几列(超过100列)。我想检查哪些是完全空的,以便可以将其删除。

我正在使用此代码len(df.col_name.value_counts()) > 0插入不同的列以进行检查,但这非常缓慢。有没有一种方法可以检查for循环?

2 个答案:

答案 0 :(得分:0)

首先,您可以简单地遍历各列;无需分别命名每个人。

您大部分时间都浪费在从向量表达式构建新对象上。相反,请使用all表达式来评估该列,因为当其中一个不能为空时,它将停止检查。

使用all的结果作为删除列的过滤器。

for column in df:
    if all(df[column].isnan()):
        del df[column]

答案 1 :(得分:0)

您不想在熊猫数据帧上使用for循环。它们建立在numpy数组的基础上,该数组可以更快地计算出数组范围的运算。

相反,您想使用类似这样的东西:

import numpy as np

df = df.loc[:,~np.all(np.isnan(df), axis=0)]