移动平均线 pandas

2022-01-31 00:00:00 python python-3.x pandas moving-average

问题描述

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

I would like to add a moving average calculation to my exchange time series.

来自 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.

I would like to add the calculated Moving Average as a new column to the right after Value using the same index (Date). Preferably I would also like to rename the calculated moving average to MA.


解决方案

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

The rolling mean returns a Series you only have to add it as a new column of your DataFrame (MA) as described below.

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

For information, the rolling_mean function has been deprecated in pandas newer versions. I have used the new method in my example, see below a quote from the pandas documentation.

警告 0.18.0 之前的版本、pd.rolling_*pd.expanding_*pd.ewm* 是模块级函数,现在已弃用.这些通过使用 RollingExpandingEWM. 对象以及相应的方法调用来替换.

Warning Prior to version 0.18.0, pd.rolling_*, pd.expanding_*, and pd.ewm* were module level functions and are now deprecated. These are replaced by using the Rolling, Expanding and EWM. objects and a corresponding method call.

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

相关文章