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

基于多列绘制100%堆叠柱状图的概率占比计算问题

概率占比计算方案
  • 第一步:按Category分组对概率列求和
    提取p0到p3列,按Category分组求和,得到每个类别下各概率的总和:

    prob_sum = df.groupby('Category')[['p0', 'p1', 'p2', 'p3']].sum()
    
  • 第二步:转换为行总和的百分比
    计算每个分组行的总概率和,再将每个概率值除以该行总和并乘以100,得到占比(可按需保留小数位数):

    # 计算每行的总概率和
    row_totals = prob_sum.sum(axis=1)
    # 转换为百分比并保留两位小数
    prob_percent = prob_sum.div(row_totals, axis=0).round(2) * 100
    

    也可以用更简洁的apply写法:

    prob_percent = df.groupby('Category')[['p0', 'p1', 'p2', 'p3']].sum().apply(lambda x: x/x.sum()*100, axis=1).round(2)
    

处理后的数据中,每个Category对应的p0-p3值都是该类别下所有概率总和的占比,每行数值和为100%,完全满足堆叠柱状图的100%堆叠要求。

内容的提问来源于stack exchange,提问作者amestrian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:47:17