【问题标题】:Moving average for the last row of a data frame数据框最后一行的移动平均值
【发布时间】:2021-06-14 10:26:45
【问题描述】:

我有一个数据框,其中包含两个价格和每个价格的移动平均线(window=3):

price1 price2 MA3-price1 MA3-price2
18 10
12 9
20 15 16.66 11.33
12 7 14.66 10.33
4 9 12 10.33
6 4 NaN NaN

我没有最后一行的 MA。如何计算最后一行的 MA 并获得:

price1 price2 MA3-price1 MA3-price2
18 10
12 9
20 15 16.66 11.33
12 7 14.66 10.33
4 9 12 10.33
6 4 7.33 6.66

【问题讨论】:

  • 你是如何计算移动平均线的?
  • 预览移动平均线是之前定义的。我必须继续餐桌。但是当我应用 df.rolling(3).mean 时,它不适用于最后一行并在下一个窗口 2 之前获取 NaN。

标签: python dataframe numpy moving-average


【解决方案1】:

要从“price1”和“price2”计算“MA3-price1”和“MA3-price2”列,请尝试:

df[["MA3-price1", "MA3-price2"]] = df.rolling(3).mean()
print(df)

打印:

   price1  price2  MA3-price1  MA3-price2
0      18      10         NaN         NaN
1      12       9         NaN         NaN
2      20      15   16.666667   11.333333
3      12       7   14.666667   10.333333
4       4       9   12.000000   10.333333
5       6       4    7.333333    6.666667

【讨论】:

  • 我只需要填写“MA3-price1”和“MA3-price2”的最后一行。
  • @SA12 df.rolling(3).mean() 必须适用于最后一行。确保您在 price1、price2 中有正确的数字数据。
  • 当我们从“价格”的第一行或前两个窗口开始时它起作用,如果我将它应用于最后一行,结果是 NaN,直到下两个窗口。我有历史数据,我只想为最后一行计算它,我不希望重复前行的计算。
猜你喜欢
  • 2021-04-19
  • 2017-11-12
  • 2013-12-24
  • 2021-04-28
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 2021-08-13
  • 2018-06-22
相关资源
最近更新 更多