首页 > 解决方案 > 如何为数据框应用滑动窗口

问题描述

我使用以下函数在列表上应用滑动窗口。我怎样才能做与数据框类似的事情?

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))

标签: pythonpandasnumpy

解决方案


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

    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())

推荐阅读