【问题标题】:Compute moving average in pandas with a twist计算熊猫的移动平均线
【发布时间】: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


    【解决方案1】:

    只需使用 for 循环

    for i in range(len(df)):
        if df["Flag"].iloc[i]:
            df["Value"].iloc[i] = df.loc[:,"Value"].iloc[i-4:i].mean()
    

    【讨论】:

    • 感谢@Riley。这行得通!
    猜你喜欢
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 2021-08-26
    相关资源
    最近更新 更多