本文介绍在 pandas 中为按组(如球队 id)计算“滞后型”累积和的方法——即每个组内,当前行的累积值等于该组此前所有行(不含当前行)的和,常用于机器学习特征工程中的时序状态建模。
本文介绍在 pandas 中为按组(如球队 id)计算“滞后型”累积和的方法——即每个组内,当前行的累积值等于该组此前所有行(不含当前行)的和,常用于机器学习特征工程中的时序状态建模。
在构建体育赛事预测模型(如球队得分预测)时,一个关键特征是:某队在当前主场比赛前的历史主场总得分。这要求我们对 home_score 按 home_id 分组后,计算不包含当前行的累积和(即“向前偏移一位”的累积和),而非标准的 cumsum()(含自身)。直接使用 groupby(...).cumsum() 会将当前得分计入结果,而我们需要的是“截至上一场的累计值”。
正确实现方式是:在分组内先计算累积和,再整体下移一行(shift(1)),最后填充首行为 0 并转为整型。推荐代码如下:
data['cumulative'] = (data.groupby('home_id')['home_score'] .transform(lambda x: x.cumsum().shift(1)) .fillna(0) .astype(int))
✅ 关键点解析:
⚠️ 常见错误警示:
不要嵌套 shift() 和 cumsum() 的顺序(如 shift().cumsum()),这会导致跨组污染或逻辑错乱;也不建议用 groupby(...).shift().cumsum(),它先整体偏移再累加,破坏了分组边界。
? 进阶提示:若数据未按时间排序,务必在计算前执行 data.sort_values(['home_id', 'game_date'], inplace=True),确保累积逻辑基于真实比赛时序。此步骤虽未显式出现在示例中,但在实际建模中不可或缺。
DeepSeek多模态怎么样及保姆级配置教程(codex、claude)实用指南
WSL2+Docker+Ollama本地部署大模型思路和实践指南(Qwen1.8b)实用指南
DeepSeek Harness热门插件盘点:10个实用插件,覆盖多Agent、上下文和多模态实用指南
grep文本搜索与正则表达式完整代码示例实用指南
AI漫剧伪装直男1‑24集无雾版夸克网盘资源免费分享
AI漫剧玉僧入尘1-68集无雾无删版夸克网盘资源免费分享