含184列的DataFrame如何输出带NA计数的完整df.info()结果?
问题核心原因
你之前调整的pd.set_option('display.*')系列参数,仅作用于普通DataFrame内容(如df.head()、df.sample()等场景)的打印规则,完全不影响df.info()的输出逻辑。
参考问题中提到的扩展列显示的配置,本质是调整全局展示的列数、行数、宽度阈值,这套配置和df.info()的输出逻辑是完全独立的两套体系,互不通气。df.info()有内置的自动折叠机制:当DataFrame列数超过默认阈值时,会自动跳过渡列的明细展示,只输出类信息、总行数、总列数、类型分布、内存占用这类整体汇总,因此你之前的调整没有达到预期效果。
正确实现带NA计数的全列info输出
df.info()自带专属控制参数,直接传入对应值即可拿到逐列的NA统计明细,无需依赖全局display设置:
verbose=True:强制逐列输出所有列的基础信息,不会因为列数多而自动折叠为整体汇总null_counts=True:为每一列单独计算并输出空值(NA)的总数量
示例调用代码:
# 输出全部184列对应的列名、非空值数量、NA计数、数据类型 df.info(verbose=True, null_counts=True)
如果输出内容过长导致终端显示截断,可以将结果导出为本地文本文件留存查看:
# 把完整的info结果写入本地文件,避免终端输出折损 with open("df_full_info.txt", "w", encoding="utf-8") as f: df.info(verbose=True, null_counts=True, buf=f)
注:pandas 1.4.0及以上版本中,
null_counts参数已并入verbose的默认逻辑,只要传入verbose=True就会自动计算并展示各列的NA计数,无需单独传递该参数。
内容的提问来源于stack exchange,提问作者Ouakrat
相关产品推荐
相关产品推荐

