You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用print语句输出pandas DataFrame各值的出现频率百分比

最优实现方案

直接使用 pandas 内置的value_counts()方法即可,该方法底层做了C级优化,即便处理超大规模数据集效率也远高于手写循环统计的方案,实现代码如下:

import pandas as pd

# 示例DataFrame构造
d = {'col1': [1, 2, 1, 6, 6, 1, 1, 2, 2, 2]}
dataframe = pd.DataFrame(data=d)

# 计算各值出现频率百分比,normalize=True直接返回占比,乘100转百分比
freq_series = dataframe['col1'].value_counts(normalize=True) * 100

# 按需求格式打印
for value, percent in freq_series.items():
    # 若不需要保留小数可直接用int(percent),需要保留小数可调整为round(percent, n),n为保留位数
    print(f"{value}: {int(percent)} %")

运行上述代码即可输出和你示例完全一致的结果:

1: 40 %
2: 40 %
6: 20 %

补充说明

  • 如果你需要统计空值(NaN)的占比,只需给value_counts加dropna=False参数即可
  • 如果要调整输出的排序规则,比如按值升序排列而不是按频次降序,可在value_counts后加.sort_index()调整
  • 如果你需要把结果存为其他格式,也可以直接对生成的freq_series做后续处理,无需重新统计

内容的提问来源于stack exchange,提问作者Adler Müller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:24:03