移动平均熊猫

新手上路,请多包涵

我想在我的交易所时间序列中添加移动平均计算。

来自 Quandl 的原始数据

Exchange = Quandl.get("BUNDESBANK/BBEX3_D_SEK_USD_CA_AC_000",
                      authtoken="xxxxxxx")

#               Value
# Date
# 1989-01-02  6.10500
# 1989-01-03  6.07500
# 1989-01-04  6.10750
# 1989-01-05  6.15250
# 1989-01-09  6.25500
# 1989-01-10  6.24250
# 1989-01-11  6.26250
# 1989-01-12  6.23250
# 1989-01-13  6.27750
# 1989-01-16  6.31250

# Calculating Moving Avarage
MovingAverage = pd.rolling_mean(Exchange,5)

#               Value
# Date
# 1989-01-02      NaN
# 1989-01-03      NaN
# 1989-01-04      NaN
# 1989-01-05      NaN
# 1989-01-09  6.13900
# 1989-01-10  6.16650
# 1989-01-11  6.20400
# 1989-01-12  6.22900
# 1989-01-13  6.25400
# 1989-01-16  6.26550

我想使用相同的索引 ( Date ) 在 Value 之后的右侧添加计算的移动平均线作为新列。最好我还想将计算出的移动平均线重命名为 MA

原文由 Martin598 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 345
1 个回答

滚动平均值返回 Series 您只需将其添加为 DataFrame ( MA ) 的新列,如下所述—

有关信息, rolling_mean 函数在 pandas 较新版本中已被弃用。我在我的示例中使用了新方法,请参阅下面来自 pandas 文档 的引述。

0.18.0 版本之前的 警告 pd.rolling_* , pd.expanding_*pd.ewm* 是模块级函数,现已弃用。这些被替换为使用 RollingExpandingEWM. 对象和相应的方法调用。

 df['MA'] = df.rolling(window=5).mean()

print(df)
#             Value    MA
# Date
# 1989-01-02   6.11   NaN
# 1989-01-03   6.08   NaN
# 1989-01-04   6.11   NaN
# 1989-01-05   6.15   NaN
# 1989-01-09   6.25  6.14
# 1989-01-10   6.24  6.17
# 1989-01-11   6.26  6.20
# 1989-01-12   6.23  6.23
# 1989-01-13   6.28  6.25
# 1989-01-16   6.31  6.27

原文由 Romain 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题