从pandas数据框创建输入数据的滑动窗口

时间:2020-09-11 18:13:27

标签: python pandas

我必须使用window size = 3创建输入数据的滑动窗口

数据框

     0   1
 0   1   2
 1   3   4
 2   5   6
 3   7   8 

所需的输出:

     0   1   2   3   4   5
 0   1   2   NA  NA  NA  NA
 1   3   4   1   2   NA  NA
 2   5   6   3   4   1   2
 3   7   8   5   6   3   4

我使用了data.values.flatten(),但是它转换了dataframenested list中的所有行。 如何从dataframe

创建输入数据(具有所需窗口长度)的滑动窗口

1 个答案:

答案 0 :(得分:1)

您可以concat

new_df = pd.concat([df.shift(i) for i in range(3)], axis=1)

# rename columns
new_df.columns = np.arange(new_df.shape[1])

输出:

   0  1    2    3    4    5
0  1  2  NaN  NaN  NaN  NaN
1  3  4  1.0  2.0  NaN  NaN
2  5  6  3.0  4.0  1.0  2.0
3  7  8  5.0  6.0  3.0  4.0