【问题标题】:How to create a rolling window of fixed length in pandas?如何在熊猫中创建固定长度的滚动窗口?
【发布时间】:2021-05-04 20:23:01
【问题描述】:

给定一个时间序列,我如何创建某个间隔的滚动窗口,使其以相同的间隔开始,而不是从大小 1 开始扩展。如下所示:

import pandas as pd
from datetime import timedelta

# 'per' x 1 minute (1T) intervals 
per = 10
d = pd.DataFrame(
    {'a': list(range(per))}, 
    index=pd.date_range('2021-05-01T0000', freq='1T', periods=per))

# create a rolling 5 minute window and get its length
w = d.rolling(timedelta(minutes=5))
for wi in w:
    print(len(wi))

# Output (window lengths):
# Window starts with length 1 and iterates until it expands
# to desired size:
#1
#2
#3
#4
#5  < I only want windows starting here
#5
#5
#5
#5

如何改为以指定的窗口大小启动窗口?

【问题讨论】:

    标签: python pandas dataframe windowing


    【解决方案1】:

    也许是一个“解决方法”:您可以使用itertools.dropwhile 过滤长度

    from itertools import dropwhile
    
    w = dropwhile(lambda w: len(w) < 5, d.rolling(timedelta(minutes=5)))
    for wi in w:
        print(len(wi))
    

    打印:

    5
    5
    5
    5
    5
    5
    

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2014-08-11
      • 2017-03-30
      • 2018-07-30
      • 2020-04-21
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多