Python pandas中如何查看value_counts()的完整统计列表
查看pandas value_counts()完整统计结果的实现方法
执行结果出现省略号截断,是pandas默认的控制台显示规则导致:当输出的Series长度超过内置的最大显示行数阈值时,pandas会自动省略中间内容、仅保留首尾条目做简化展示,统计值本身已经全部计算完成,只是默认显示逻辑做了折叠。可通过以下任意一种方法实现全量结果的查看:
临时全局调整显示行数阈值
通过pandas的配置参数,把控制台允许显示的最大行数调整为大于统计结果总长度(如示例中的4176条,设置为10000即可完全覆盖),设置后执行统计就会展示全部内容:import pandas as pd # 将最大显示行数设置为足够大的数值 pd.set_option('display.max_rows', 10000) # 正常执行值统计即可看到完整结果 amt_stat = df['Amt'].value_counts(sort=True) print(amt_stat)如果需要恢复pandas默认的显示规则,可以执行
pd.reset_option('display.max_rows')切回默认配置,避免后续查看大表时输出内容刷满控制台。单次输出强制全量转换为文本(不修改全局配置)
不需要改动全局显示规则,直接调用Series自带的to_string()方法,把整个统计结果强制转成完整的文本字符串输出,完全绕过pandas的折叠逻辑:amt_stat = df['Amt'].value_counts(sort=True) print(amt_stat.to_string())这种方式的优势是仅对当前这一次输出生效,不会影响后续其他DataFrame/Series的默认显示效果。
逐行遍历打印统计结果
直接遍历统计结果的键值对逐行输出,从机制上避开pandas的显示限制,还可以自定义输出的格式:amt_stat = df['Amt'].value_counts(sort=True) # 逐行打印每个金额值对应的出现次数 for amt_value, appear_count in amt_stat.items(): print(f"金额值: {amt_value}, 出现次数: {appear_count}")
实用提示:如果统计结果条目数超过上千条,不建议直接在控制台全量打印翻看,更高效的方式是把统计结果直接导出为CSV文件留存查看,对应代码为
amt_stat.to_csv('Amt字段值计数统计结果.csv', encoding='utf-8-sig')。
内容的提问来源于stack exchange,提问作者Ruban
相关产品推荐
相关产品推荐

