滚动数据帧

2024-04-25 21:40:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧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

我想创建一个滚动窗口,从df dataframe顶部开始连续5天,窗口:01/10/200705/10/2007,并允许我用这个数据子集创建一个新的dataframe,因此新的dataframe(命名为saysubDf)最初看起来像:

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数据帧,这样看起来:

    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数据帧的底部,最后一次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/2007,03/10/2007…)进行交互。任何帮助我如何处理这将不胜感激。你知道吗


Tags: 数据dataframedfdate情况整数命名子集
1条回答
网友
1楼 · 发布于 2024-04-25 21:40:30
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)

相关问题 更多 >