熊猫滚动适用于可变窗口长度

Posted

技术标签:

【中文标题】熊猫滚动适用于可变窗口长度【英文标题】:Pandas rolling apply with variable window length 【发布时间】:2014-08-11 19:34:13 【问题描述】:

我有一个按时间戳索引值的系列。这些时间戳的间隔不规则,我想计算过去 N 秒内的滚动平均值(比如说),其中 N 是一个常数。不幸的是,在计算滚动数量之前定期重新采样不是一种选择 - 滚动数量必须在整个数据集上计算。

在 pandas 中有没有好的方法来做到这一点?

【问题讨论】:

Pandas: rolling mean by time interval 的可能重复项 【参考方案1】:

您希望将索引重置为整数索引并对时间戳列执行滚动操作。

# generate some data
data = pd.DataFrame(data='vals':range(5), 'seed_ts': [np.datetime64('2017-04-13T09:00:00') for x in range(5)])
data['random_offset'] = [np.timedelta64(randint(0, 5), 's') for x in range(5)]
data['cum_time'] = data['random_offset'].cumsum()
data['ts'] = data['seed_ts'] + data['cum_time']
data.index = data['ts']
data = data[['vals']]

重置索引:

data = data.reset_index()

计算过去 5 秒的滚动平均值:

data['rolling_mean'] = data.rolling('5s', on='ts')['vals'].mean()

【讨论】:

以上是关于熊猫滚动适用于可变窗口长度的主要内容,如果未能解决你的问题,请参考以下文章

Numpy:从熊猫数据帧创建可变长度序列

在熊猫中将可变长度列表保存到 HDF5

R中可变窗口滚动最大值/分钟的内存效率

找出一个可变长度的字符串?

Flink的窗口计算案例

Flink的窗口计算案例