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

假设我现在有一个在日期 (df['DT']) 和 ID (df['ID']) 中多重索引的 df


DT,ID,value1,value2

2020-10-01,a,1,1

2020-10-01,b,2,1

2020-10-01,c,3,1

2020-10-01,d,4,1

2020-10-02,a,10,1

2020-10-02,b,11,1

2020-10-02,c,12,1

2020-10-02,d,13,1


df = 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,value2

2020-10-01,a,1.0,1

2020-10-01,b,2.0,1

2020-10-01,c,3.0,1

2020-10-01,d,4.0,1

2020-10-02,a,10.0,1

2020-10-02,b,11.0,1

2020-10-02,c,12.0,1

2020-10-02,d,13.0,1

2020-10-03,a,5.5,1

2020-10-03,b,6.5,1

2020-10-03,c,7.5,1

2020-10-03,d,8.5,1

2020-10-04,a,5.5,1

2020-10-04,b,6.5,1

2020-10-04,c,7.5,1

2020-10-04,d,8.5,1

感谢您的帮助和时间。


大话西游666
浏览 80回答 1
1回答

白板的微信

为了使用平均使用DataFrame.unstackfor进行轻松预测DatetimeIndex,请添加下一个日期时间 by DataFrame.reindexwith date_range,然后替换value1级别中的缺失值 byDataFrame.fillna并value2设置for 1,最后重新整形回来DataFrame.stack:print (df)               value1  value2DT         ID                2020-10-01 a        1       1           b        2       1           c        3       1           d        4       12020-10-02 a       10       1           b       11       1           c       12       1           d       13       1rng = 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'] = 1df2 = df1.stack()print (df2)               value1  value2DT         ID                2020-10-01 a      1.0       1           b      2.0       1           c      3.0       1           d      4.0       12020-10-02 a     10.0       1           b     11.0       1           c     12.0       1           d     13.0       12020-10-03 a      5.5       1           b      6.5       1           c      7.5       1           d      8.5       12020-10-04 a      5.5       1           b      6.5       1           c      7.5       1           d      8.5       1但预测比较复杂,你可以检查一下
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python