gpt4 book ai didi

python - 如何在 Pandas 的非时间索引上按值区间进行滑动窗口?

转载 作者:行者123 更新时间:2023-11-28 19:08:32 25 4
gpt4 key购买 nike

我想按值间隔做一个滑动窗口(窗口是:当前值 - 值差异)但是将一般值作为索引而不是适当的时间索引。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rolling.html 的文档说我需要时间偏移。

有没有什么好的方法可以改用通用值?

一个测试用例可以是

import pandas as pd
s = pd.Series([1,1,1,1,1], index=[1,3,6,7,8])

sliding_window(s, 2, sum) # expected result [1,2,1,2,3]
# for each element x sum all previous where index is in range x-2...x

我可以用几行代码在(慢速)Python 中实现它,但是 Pandas 有办法吗?

最佳答案

一个可能的解决方案是用 0 填充,这样索引就完整了。

在你的例子中:

s = pd.Series([1,1,1,1,1], index=[1,3,6,7,8])

s_filled = s.reindex(range(9), fill_value=0)

rolling_sum = s_filled.rolling(3, min_periods=1).sum() # your example does a rolling sum 3, not 2

rolling_sum.reindex(s.index) # Go back to original index

关于python - 如何在 Pandas 的非时间索引上按值区间进行滑动窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43538064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com