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

如何在pandas处理结果中添加百分比计算列以监控数据变化

Pandas新增百分比列修改方案

原有代码参考(可对应你现有逻辑对齐)

你现有可运行的代码逻辑大致如下,可根据你实际的聚合规则调整对应字段:

import pandas as pd

# 读取源数据
df = pd.read_csv("sampledata.txt")
# 此处省略你已实现的数据清洗逻辑
# 按col1、col5分组聚合,示例为col2求和,可替换为你实际的聚合逻辑
agg_df = df.groupby(["col1", "col5"], as_index=False).agg(
    col2=("col2", "sum")
)
# 按col2降序排序
sorted_df = agg_df.sort_values("col2", ascending=False).reset_index(drop=True)

常用百分比计算实现代码

根据你监控数据的需求,可选择以下任意一种或多种百分比计算逻辑,直接加在排序代码之后即可:

  • 全局占比:每行col2值占全量总col2的百分比
    适合看单条数据对整体大盘的贡献占比
    # 计算百分比,默认保留2位小数
    sorted_df["全局占比(%)"] = (sorted_df["col2"] / sorted_df["col2"].sum()).round(4) * 100
    # 如需展示百分号后缀,可加以下代码转换为字符串格式
    # sorted_df["全局占比(%)"] = sorted_df["全局占比(%)"].astype(str) + "%"
    
  • 组内占比:按col1分组,计算同组内每行col2占分组总col2的百分比
    适合看同一col1分类下,不同col5的分布占比
    sorted_df["组内占比(%)"] = sorted_df.groupby("col1")["col2"].apply(lambda x: (x/x.sum()).round(4)*100)
    
  • 环比变化率:当前行col2相对于上一行col2的变化百分比
    适合看排序后相邻数据的波动幅度
    sorted_df["环比变化率(%)"] = sorted_df["col2"].pct_change().round(4) * 100
    # 第一行无前置数据默认返回NaN,可按需填充为0或其他占位值
    # sorted_df["环比变化率(%)"] = sorted_df["环比变化率(%)"].fillna(0)
    

注意事项

  • 如果你聚合col2时使用的不是求和,而是计数、均值等规则,把计算分母对应的sum()替换为你实际使用的聚合方法即可
  • 保留小数位数可通过修改round()的入参调整,比如保留1位小数就写round(1)
  • 如果col2存在负值,计算出的百分比会为负,符合变化率的计算逻辑,属于正常情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:15:08