why does pandas rolling use single dimension ndarray

后端 未结 4 1042
清歌不尽
清歌不尽 2020-11-29 02:12

I was motivated to use pandas rolling feature to perform a rolling multi-factor regression (This question is NOT about rolling multi-factor reg

4条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-29 02:51

    Made the following modifications to the above answer since I needed to return the entire rolling window as is done in pd.DataFrame.rolling()

    def roll(df, w):
        roll_array = np.dstack([df.values[i:i+w, :] for i in range(len(df.index) - w + 1)]).T
        roll_array_full_window = np.vstack((np.empty((w-1 ,len(df.columns), w)), roll_array))
        panel = pd.Panel(roll_array_full_window, 
                     items=df.index,
                     major_axis=df.columns,
                     minor_axis=pd.Index(range(w), name='roll'))
        return panel.to_frame().unstack().T.groupby(level=0)
    

提交回复
热议问题