【发布时间】:2021-11-12 21:31:50
【问题描述】:
这在 excel 中似乎很容易实现。不知道如何用 pandas 做到这一点。
我的数据集如下所示
[Row,Flag,Value
1,FALSE,3
2,FALSE,1
3,FALSE,2
4,FALSE,3
5,FALSE,5
6,TRUE,nan
7,TRUE,nan
8,TRUE,nan
9,TRUE,nan]
我想要一个看起来像这样的输出
[Row,Flag,Value
1,FALSE,3
2,FALSE,1
3,FALSE,2
4,FALSE,3
5,FALSE,5
6,TRUE,2.75
7,TRUE,3.19
8,TRUE,3.48
9,TRUE,3.61]
我想要一个输出,当 flag = TRUE 时计算前 4 行的移动平均值。此外,当移动到下一行时,计算应该使用最近计算的平均值。从上面的例子中,很明显第 6 行的平均值是(5+3+3+1)/4 = 2.75。第 7 行的平均值应该包括最近计算的第 6 行值(**2.75**,5,3,2)/4 = 3.19
我已经参考了以下文章,但这很有帮助 Pandas - moving averages - use values of previous X entries for current row
【问题讨论】:
标签: python pandas moving-average