滚动窗口,熊猫窗口大小重叠50%

时间:2018-07-09 12:17:05

标签: python pandas numpy data-analysis

我有一个像这样的数据框,它是从CSV导入的。 Data frame

我想创建一个大小为256,重叠率为50%的滑动窗口。 例如,window1应该包含索引0-255的数据,window2应该包含索引128-383的数据,依此类推,直到所有数据在各自的窗口中拆分为止。 我正在尝试从pandas滚动roll.windows创建窗口,但没有成功。 我想实现这样的目标。 Overlapping windows 如何使用Pandas或Numpy中包含的优化方法来做到这一点?

1 个答案:

答案 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%的新数据帧。