滚动数据框



我有一个dataframe df,看起来像:

date        waveLength
01/10/2007  21.0831
02/10/2007  21.3513
03/10/2007  21.2866
04/10/2007  21.0683
05/10/2007  21.7731
08/10/2007  22.626
09/10/2007  22.6274
10/10/2007  22.4751
11/10/2007  21.8606
12/10/2007  22.5411
15/10/2007  22.5007
16/10/2007  22.8511
17/10/2007  23.2782
18/10/2007  23.3793
19/10/2007  22.9508
22/10/2007  23.4952
23/10/2007  25.0852
24/10/2007  25.0542
25/10/2007  24.6298
26/10/2007  24.8885
29/10/2007  24.941
30/10/2007  25.1984

我想创建一个滚动窗口,该窗口连续5天从DF DataFrame的顶部开始使用窗口:01/10/200705/10/2007,允许我使用此数据sub创建一个新的数据框DataFrame(命名为subDf(最初看起来像:

date        waveLength
    01/10/2007  21.0831
    02/10/2007  21.3513
    03/10/2007  21.2866
    04/10/2007  21.0683
    05/10/2007  21.7731

一旦我在subDf中处理了子集后,我就可以在一天中滚动df数据框并重新创建subDf Datframe,因此看起来像:

    02/10/2007  21.3513
    03/10/2007  21.2866
    04/10/2007  21.0683
    05/10/2007  21.7731
    08/10/2007  22.626

这一直持续到我到达df DataFrame的底部,而subDf的最后一次迭代看起来像:

    24/10/2007  25.0542
    25/10/2007  24.6298
    26/10/2007  24.8885
    29/10/2007  24.941
    30/10/2007  25.1984

我需要通过索引作为互连(0,1,2,3,4 ...(或日期(01/10/2007,02/10/10/2007,03/10/2007(交叉。....(。任何帮助我如何解决这一问题将不胜感激。

import numpy as np
import pandas as pd
dates = ['01/10/2007', '02/10/2007', '03/10/2007', '04/10/2007', '05/10/2007', '06/10/2007', '07/10/2007']
wavelengths = np.random.rand(7)
data = pd.DataFrame({"date": dates,"wavelength": wavelengths})
for row_id in range(len(data)-4):
   sub_data = data.loc[row_id:(row_id+4)]
   print(sub_data)

最新更新