Python中如何保存含缺失值的列名并统计缺失值总数
解决Pandas统计含缺失值列的缺失值总数问题
嘿,我明白你的困扰啦!你原来的代码能找出有缺失值的列,但因为循环里的变量a每次都会被新的列名覆盖,所以最后只保留了最后一列的名字。而且print(a)只是输出内容,它没有返回值,所以你用b=print(a)得到的其实是None,自然没法收集列名。
下面给你两种靠谱的实现方式:
方法一:先收集列名再统计
先把所有含缺失值的列名存到一个列表里,再遍历这个列表统计每列的缺失值数量:
# 第一步:收集所有存在缺失值的列名 cols_with_nulls = [col for col in data.columns if data[col].isnull().any()] # 第二步:遍历列表,统计每列的缺失值总数 for col in cols_with_nulls: missing_count = data[col].isnull().sum() print(f"列 '{col}' 的缺失值总数:{missing_count}")
方法二:用Pandas向量化操作更高效
其实不用手动循环列名,Pandas本身就有更简洁高效的方式,直接计算所有列的缺失值,再过滤出有缺失的列:
# 计算每列的缺失值总数,然后筛选出缺失值>0的列 null_counts = data.isnull().sum() filtered_null_counts = null_counts[null_counts > 0] # 打印结果 print(filtered_null_counts)
这种方法用了Pandas的向量化操作,比手动循环快很多,尤其是当你的数据集很大的时候,效率优势会更明显。
内容的提问来源于stack exchange,提问作者rk jp
相关产品推荐
相关产品推荐

