我正试图计算亚马逊股票的年化回报率,但无法计算出以下方法之间的主要区别
df = pdr.get_data_yahoo('amzn',datetime(2015, 1, 1),datetime(2019, 12, 31))['Adj Close']
1(df.pct_change()).mean()*252
结果=0400
2(df.resample('Y').last().pct_change().mean()
结果=0472
为什么会有7%左右的差异?
在阅读了函数的文档后,我想通过对时间序列数据重新采样的示例来更好地理解。
使用重采样方法,DataFrame的价格列按一定的时间跨度分组,在这种情况下,'Y'表示按年份进行重采样,使用last((我们可以获得每年年底的价格值。
data.resample('Y').last()
输出:1。步骤
接下来,使用pct_change((,我们计算每一行的值与前几行的值之间的百分比变化,前几行是我们之前得到的每年年底的价格值。
data.resample('Y').last().pct_change()
输出:2。步骤
现在,在最后一步中,我们使用mean((方法计算整个时间段内的平均百分比变化
data.resample('Y').last().pct_change().mean()
输出:3。步骤
就像@itprorh66已经写过的那样,这两种方法之间的主要区别在于计算值的平均值的时间。