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

如何将pandas DataFrame中同一周期内的多个值转换为对应周期权重

Pandas 计算单日得分权重实现方法
import pandas as pd

# 1. 转换DateTime字段为pandas日期类型(已转换可跳过)
df['DateTime'] = pd.to_datetime(df['DateTime'])

# 2. 按日期分组计算权重,一行完成字段新增
df['DailyScoreWeight'] = df['Score'] / df.groupby(df['DateTime'].dt.date)['Score'].transform('sum')

代码说明

  • df['DateTime'].dt.date:从带时间的日期字段中提取纯日期维度,作为分组的依据,保证同一天的所有记录被分到同一组
  • groupby(...)['Score'].transform('sum'):对分组后的Score列求和,transform方法会把求和结果自动对齐原表的每一行,无需额外做表关联操作,输出结果行数和原表完全一致
  • 计算逻辑天然规避分母为0的问题:如果当日所有Score都是0,计算结果会是NaN,你可以根据业务需要后续用fillna(0)把空值替换为0即可

效果验证

比如你举例的Day1有三条记录Score分别为4、3、3,当日总分为10,代码运行后对应的DailyScoreWeight值会自动计算为0.4、0.3、0.3,符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:24:01