亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用預測的新日期擴展多索引數據框

使用預測的新日期擴展多索引數據框

大話西游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 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號