我有一个相当大的数据集,其中包含几列(超过100列)。我想检查哪些是完全空的,以便可以将其删除。
我正在使用此代码len(df.col_name.value_counts()) > 0
插入不同的列以进行检查,但这非常缓慢。有没有一种方法可以检查for循环?
答案 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)]