【问题标题】:rolling window with 50% overlapping on window size in pandasPandas 中窗口大小重叠 50% 的滚动窗口
【发布时间】:2018-12-17 03:08:31
【问题描述】:

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

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

【问题讨论】:

  • 欢迎来到 SO。请提供 minimal reproducible example。这意味着没有链接或图片。
  • 每个窗口都应该是一个新的数据框吗?还是应该将所有窗口组合在一个数据框中?
  • 每个窗口应该是一个新的数据框

标签: python pandas numpy data-analysis


【解决方案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%。

【讨论】:

  • 如何做同样的事情但随着时间的推移,所以窗口大小是基于持续时间的?熊猫滚动有 1 帧重叠
猜你喜欢
  • 2018-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多