我有一个与此相似的数据框:
df = pd.DataFrame({'B': [0, 1, 2, 3, 4]})
我想在熊猫中使用滚动函数,但是滚动后不需要聚合函数(求和,平均值,最小值,最大值,...)。我需要每个窗口的数据。
我可以自己创建一个滑动窗口,但是我的问题是滚动功能。通过在熊猫中使用滚动功能,是否有可能具有类似的功能。
当我使用以下功能时
w = df.rolling(2)
我收到以下结果:
Rolling [window=2,center=False,axis=0]
当我需要这个时:
w = [[0 , 1]
[1 , 2]
[2 , 3]
[3 , 4]]
答案 0 :(得分:0)
您可以使用np.stride_tricks
:
import numpy as np
as_strided = np.lib.stride_tricks.as_strided
win = 2
v = as_strided(df.B, (len(df) - (win - 1), win), (df.B.values.strides * 2))
print(v)
答案 1 :(得分:0)
由于 pandas 1.1
滚动对象是可迭代的,因此您可以这样做:
w = list(df.rolling(2))