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

基于y的年度月度平均增长率生成特征的简洁实现方法问询

简洁实现月度几何平均增长率特征生成

需求说明

基于月度数据集生成过去n年的几何平均增长率特征(如y_agr_last2、y_agr_last3等),计算公式为:

[(1+r₁)(1+r₂)...(1+rₙ)]^(1/n)-1

其中r为对应年度同月的y值(百分比形式),例如2022年9月的y_agr_last2是过去2年同月y值的几何平均增长率。

原代码问题

原实现需要手动创建多个shift临时列,再重复编写计算逻辑,代码冗余且扩展性差——新增年份特征时需重复编写多段相似代码。

简洁实现方案

通过循环批量生成特征,无需创建临时shift列,代码更简洁且易于扩展:

import pandas as pd

# 定义需要生成特征的年份数列表,可按需添加(如[2,3,4,5])
target_years = [2, 3, 4]

for n in target_years:
    # 批量获取过去n年对应月份的(1+r)序列,计算乘积
    year_series = [(df['y'].shift(12*i)/100) + 1 for i in range(1, n+1)]
    # 计算几何平均增长率并生成对应列
    df[f'y_agr_last{n}'] = pd.concat(year_series, axis=1).prod(axis=1) ** (1/n) - 1

方案优势

  • 扩展性强:新增年份特征仅需在target_years列表中添加对应数字
  • 无冗余代码:避免重复编写shift和计算逻辑
  • 节省内存:无需创建并删除临时shift列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:25:22