我有一个像这样的数据框,它是从CSV导入的。 Data frame
我想创建一个大小为256,重叠率为50%的滑动窗口。 例如,window1应该包含索引0-255的数据,window2应该包含索引128-383的数据,依此类推,直到所有数据在各自的窗口中拆分为止。 我正在尝试从pandas滚动roll.windows创建窗口,但没有成功。 我想实现这样的目标。 Overlapping windows 如何使用Pandas或Numpy中包含的优化方法来做到这一点?
答案 0 :(得分:1)
def windows(d, w, t):
r = np.arange(len(d))
s = r[::t]
z = list(zip(s, s + w))
f = '{0[0]}:{0[1]}'.format
g = lambda t: d.iloc[t[0]:t[1]]
return pd.concat(map(g, z), keys=map(f, z))
windows(d,256,128)
d:数据帧w:窗口大小(256)t:重叠因子(例如,窗口大小的50%,即128)。
因此,在传递了上述参数之后,该函数将返回窗口大小为256,重叠率为50%的新数据帧。