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

Pandas按date和count分组创建新列计算moy占比的实现咨询

用pandas计算分组内占比的实现方法

你需要创建名为new的新列,按date和count字段分组,计算当前行moy值占所属分组全部moy值总和的比例,直接使用pandas的分组聚合+映射功能即可实现,核心代码如下:

import pandas as pd

# 核心计算逻辑
df['new'] = df['moy'] / df.groupby(['date', 'count'])['moy'].transform('sum')

代码说明

  • groupby(['date', 'count']):指定按照date、count两个字段对数据集进行分组
  • transform('sum'):将分组后的moy求和结果映射回原数据集的每一行,和原数据集行数完全匹配,不会出现聚合后行数压缩的问题
  • 直接将每行moy值除以对应分组的moy总和,即可得到你需要的比例值,和你给出的示例逻辑完全一致

如果需要保留指定小数位,可以调整代码:

# 保留2位小数
df['new'] = (df['moy'] / df.groupby(['date', 'count'])['moy'].transform('sum')).round(2)

# 如果需要转为百分比格式
df['new'] = (df['moy'] / df.groupby(['date', 'count'])['moy'].transform('sum') * 100).round(1).astype(str) + '%'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 12:24:00