【发布时间】:2020-11-23 11:44:12
【问题描述】:
我在 pandas 中寻找一个特殊的window function:类似于rolling 和 expanding 的组合。为了计算(例如)平均值和标准偏差,我想考虑所有过去的数据,但忽略前几条记录以确保我有 7 的倍数(在我的情况下为天)。那是因为我知道数据具有很强的每周模式。
例子:
s = pd.Series([1, 3, 4, 5, 4, 3, 1, 2, 4, 5, 4, 5, 4, 2, 1, 3, 4, 5, 4, 3, 1, 3],
pd.date_range('2020-01-01', '2020-01-22'))
s.rolling(7, 7).mean() # Use last 7 days.
s.expanding(7).mean() # Use all past days.
s.mywindowing(7).mean() # Use last past multiple of 7 days. How?
当然,我可以使用for 循环等手动执行操作,但我想现有的 pandas 机器可以用来执行此操作...?
【问题讨论】:
-
你能解释一下你是如何为你的函数创建值的吗?
-
@NathanFurnal 从开始到当前日期的平均值:7 天的倍数。