如何为数据框应用滑动窗口

时间:2020-07-04 16:51:56

标签: python pandas numpy

我使用以下功能在列表上应用滑动窗口。我该如何做与数据框相似的事情?

import numpy as np
import pandas as pd

data = list(range(36))
window_size = 12
splits = []

for i in range(window_size, len(data)):
    train = np.array(data[i-window_size:i])
    test = np.array(data[i:i+3])
    splits.append(('TRAIN:', train, 'TEST:', test))

例如

pd.DataFrame(np.random.randn(36, 1))

2 个答案:

答案 0 :(得分:0)

这有点混乱,因为我没有使用原始数据集。但这应该可以给您一个想法。

    import numpy as np
    import pandas as pd
    df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
    window_size=[2,2]
    for x in range(window_size[0]):
       for y in range(window_size[1]):
           train=df[0:x].loc[0:y]
           print(train.head())
           test=df[x:].loc[y:]
           print(test.head())

答案 1 :(得分:0)

使用iloc切片数据帧可能非常简单:

df.iloc[:,2:]

上方将产生第三列起的所有行(跳过前两列)

df.iloc[:,3:5]

上方将产生第4列和第5列

以此类推

希望有帮助