1
我有一個多指標系列(3個指標),看起來像這樣:使用熊貓數據幀從MultiIindex系列添加滯後功能
Week ID_1 ID_2
3 26 1182 39.0
4767 42.0
31393 20.0
31690 42.0
32962 3.0
....................................
我也有一個數據幀df
其中包含所有列(及以上)使用對於上述系列中的索引,我想在我的數據框df
中創建一個新列,其中包含與系列中的ID_1
和ID_2
和Week - 2
匹配的值。
例如,對於在具有ID_1 = 26
,ID_2 = 1182
和Week = 3
數據框的行,我想匹配由ID_1 = 26
,ID_2 = 1182
和Week = 1
(3-2)指數系列的價值,把它放在該行中新柱。此外,我的系列不一定有要求的數據框,我想在這種情況下,價值只是有0
現在,我試圖做到這一點通過:
[multiindex_series.get((x[1].get('week', 2) - 2, x[1].get('ID_1', 0), x[1].get('ID_2', 0))) for x in df.iterrows()]
然而,這是非常緩慢和記憶飢餓,我想知道有什麼更好的方法來做到這一點。
FWIW,該系列使用
saved_groupby = df.groupby(['Week', 'ID_1', 'ID_2'])['Target'].median()
創建,我願意做它用不同的方式是否存在更好的路徑,創造了我要找的。
輝煌,甚至沒有考慮重置指數,謝謝!我認爲,爲了配合我的問題,我應該**在本週添加** 2,不是嗎?否則,數據框將包含我相信的未來幾周的中值目標。 – confused00
對,如果你想用2周前的中值目標來增加原始數據幀,然後使用'saved_groupby ['Week'] = saved_groupby ['Week'] + 2'。 – unutbu