如何选择n行,然后移动1



我想使用季度回报从我的数据框架中计算滚动年化回报,然后向下移动到下一行,等等。即:

Date          Q Return  1 year Return
30/09/2014      2%           -
31/12/2014      4%          -
31/03/2015      -6%         -
30/06/2015      8%         7.69%
30/09/2015      3%          8.75%
31/12/2015      -2%          2.47%

…显然,使用Excel非常简单,但是我在python上挣扎了一点,以获得移动的年化回报。

谢谢你的帮助。

df.rolling(n).mean()似乎是解决方案之一。

n在本例中应为4。

但是,您应该将字符串(我的意思是2%,它似乎是字符串)转换为浮点数。最后将NaN替换为您希望的-,格式为pic。

希望有帮助。

太棒了。如果有人在看年度业绩,这只是为了将来的参考:

df['Annualised1Y'] = df['Q_Return'].rolling(4).apply(lambda x: ((np.prod(1+x)-1)*100))

或更长时间:

df['Annualised3Y'] = df['Q_Return'].rolling(12).apply(lambda x: ((np.prod(1+x)**(1/3)-1)*100))

希望这将有助于投资分析师在未来实现自动化的年化回报。

相关内容

最新更新