多列DataFrame使用isnull().sum()统计空值仅显示部分列如何解决
问题解决方法
错误原因
- 你编写的for循环报错,是因为
house.columns存储的是列名字符串,直接对字符串ncheck调用isnull()方法逻辑错误,应该访问DataFrame对应列再做统计。 - 直接运行
house.isnull().sum()仅显示部分列,是pandas默认开启了输出缩略规则,列数/行数超过阈值时会自动用省略号折叠内容。
可用解决方案
方案1:修正for循环写法
for col in house.columns: # 同步打印列名和对应空值数 print(col, house[col].isnull().sum())
方案2:修改pandas显示配置,直接输出全量统计结果
不用循环,仅修改全局显示参数即可让原生统计语句输出完整内容:
import pandas as pd # 取消最大显示列数限制 pd.set_option('display.max_columns', None) # 可选:同时取消最大显示行数限制,避免行数据多也被折叠 pd.set_option('display.max_rows', None) # 此时运行原生统计语句即可返回所有列的空值结果 print(house.isnull().sum())
方案3:将统计结果转为字典/列表输出,规避折叠规则
# 转成字典格式,键为列名、值为对应空值数 null_count_dict = house.isnull().sum().to_dict() print(null_count_dict)
补充说明
你提到DataFrame共有81列,但当前统计结果显示Length为80,可运行print(len(house.columns))核对实际列数,避免存在列被意外遗漏的情况。
内容的提问来源于stack exchange,提问作者lasan13
相关产品推荐
相关产品推荐

