我使用以下功能在列表上应用滑动窗口。我该如何做与数据框相似的事情?
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))
答案 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列
以此类推
希望有帮助