为了账号安全,请及时绑定邮箱和手机立即绑定

使用预测的新日期扩展多索引数据框

使用预测的新日期扩展多索引数据框

大话西游666 2023-09-26 16:16:57
假设我现在有一个在日期 (df['DT']) 和 ID (df['ID']) 中多重索引的 dfDT,ID,value1,value22020-10-01,a,1,12020-10-01,b,2,12020-10-01,c,3,12020-10-01,d,4,12020-10-02,a,10,12020-10-02,b,11,12020-10-02,c,12,12020-10-02,d,13,1df = df.set_index(['DT','ID'])现在,我想将 df 扩展为“2020-10-03”和“2020-10-04”,其 ID {a,b,c,d} 集与我的预测期相同。为了预测值 1,我假设它们将取现有值的平均值,例如对于 2020-10-03' 和 '2020-10-04' 中 a 的 value1,我假设它将取 (1+10)/2 = 5.5。对于值 2,我假设它将保持恒定为 1。预期的 df 将如下所示:DT,ID,value1,value22020-10-01,a,1.0,12020-10-01,b,2.0,12020-10-01,c,3.0,12020-10-01,d,4.0,12020-10-02,a,10.0,12020-10-02,b,11.0,12020-10-02,c,12.0,12020-10-02,d,13.0,12020-10-03,a,5.5,12020-10-03,b,6.5,12020-10-03,c,7.5,12020-10-03,d,8.5,12020-10-04,a,5.5,12020-10-04,b,6.5,12020-10-04,c,7.5,12020-10-04,d,8.5,1感谢您的帮助和时间。
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

为了使用平均使用DataFrame.unstackfor进行轻松预测DatetimeIndex,请添加下一个日期时间 by DataFrame.reindexwith date_range,然后替换value1级别中的缺失值 byDataFrame.fillnavalue2设置for 1,最后重新整形回来DataFrame.stack

print (df)

               value1  value2

DT         ID                

2020-10-01 a        1       1

           b        2       1

           c        3       1

           d        4       1

2020-10-02 a       10       1

           b       11       1

           c       12       1

           d       13       1

rng = pd.date_range('2020-10-01','2020-10-04', name='DT')

df1 = df.unstack().reindex(rng)

df1['value1'] = df1['value1'].fillna(df1['value1'].mean())

df1['value2'] = 1


df2 = df1.stack()

print (df2)

               value1  value2

DT         ID                

2020-10-01 a      1.0       1

           b      2.0       1

           c      3.0       1

           d      4.0       1

2020-10-02 a     10.0       1

           b     11.0       1

           c     12.0       1

           d     13.0       1

2020-10-03 a      5.5       1

           b      6.5       1

           c      7.5       1

           d      8.5       1

2020-10-04 a      5.5       1

           b      6.5       1

           c      7.5       1

           d      8.5       1

但预测比较复杂,你可以检查一下


查看完整回答
反对 回复 2023-09-26
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信