Python 如何在滑动窗口中保持第一个窗口不变?
我使用以下代码对时间序列数据应用滑动窗口。我想将我的第一个窗口设置为固定窗口,然后在所需输出中应用如下所示的滑动窗口Python 如何在滑动窗口中保持第一个窗口不变?,python,Python,我使用以下代码对时间序列数据应用滑动窗口。我想将我的第一个窗口设置为固定窗口,然后在所需输出中应用如下所示的滑动窗口 df = pd.DataFrame({'B': [0, 1, 2, 3, 4, 5, 6,7,8,9,10]}) def sliding_window(data, size): return [ data[x:x+size] for x in range( len(data) - size + 1 ) ] sliding_window(df, 7) 输出 所需输出
df = pd.DataFrame({'B': [0, 1, 2, 3, 4, 5, 6,7,8,9,10]})
def sliding_window(data, size):
return [ data[x:x+size] for x in range( len(data) - size + 1 ) ]
sliding_window(df, 7)
输出
所需输出
例如:
我这里用的是5号的固定窗口。它应该总是第一个窗口,滑动窗口和以前一样,只是它从第一个窗口滑动。如图中的左图所示。。
试试这个:
def rolling_window_maybe(data, initial_size: int):
return [ data[:initial_size + x] for x in range( len(data) - initial_size ) ]
例如:
data = [1,2,3,4]
size = 2
data[:size + 0] == [1,2]
data[:size + 1] == [1,2,3]
data[:size + 2] == [1,2,3,4]
您想要的输出不是滑动窗口,但为什么您认为这不是滑动窗口?图中正确的部分是滑动窗口吗?正确的部分肯定是。看起来左边的部分被调用了。您的
滑动窗口
函数已经实现了这一点是的,绝对正确
def rolling_window_maybe(data, initial_size: int):
return [ data[:initial_size + x] for x in range( len(data) - initial_size ) ]
data = [1,2,3,4]
size = 2
data[:size + 0] == [1,2]
data[:size + 1] == [1,2,3]
data[:size + 2] == [1,2,3,4]