Pandas如何获取列非空计数低于阈值的对应列名并删除符合条件的列
方法1:遍历同时获取列名与对应计数
df.count()返回的是索引为列名、值为对应列非空计数的Series对象,你可以调用它的items()方法同时遍历索引(列名)和值:
for col_name, non_null_count in a.items(): if non_null_count < 50: print(f"列名:{col_name},非空值计数:{non_null_count}")
运行后就会输出所有符合阈值条件的列名和对应的计数值。
方法2:直接完成删除列操作(更高效,无需手动遍历)
如果你最终目标是直接删除非空计数小于50的列,用pandas矢量化操作更简洁:
# 方式1:生成新的过滤后的DataFrame,不修改原对象 df_filtered = df.loc[:, a >= 50] # 方式2:直接在原DataFrame上删除符合条件的列 df.drop(columns=a[a < 50].index, inplace=True)
a[a < 50].index就是所有非空计数小于50的列名列表,直接传给drop方法的columns参数即可完成删除。
内容的提问来源于stack exchange,提问作者Hera Najam
相关产品推荐
相关产品推荐

