如何在 Pandas DataFrame 上计算滚动累积乘积。
我在 pandas DataFrame 中有一个时间序列的回报。如何计算 DataFrame 中相关列的滚动年化 alpha?我通常会使用 Excel 并执行以下操作:=PRODUCT(1+[trailing 12 months])-1
我的 DataFrame 如下所示(一小部分):
Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4 \
2009-08-31 00:00:00 --- --- 0.1489 0.072377
2009-09-30 00:00:00 --- --- 0.0662 0.069608
2009-10-31 00:00:00 --- -- -0.0288 -0.016967
2009-11-30 00:00:00 --- --- -0.0089 0.0009
2009-12-31 00:00:00 --- --- 0.044 0.044388
2010-01-31 00: 00:00 --- --- -0.0301 -0.054953
2010-02-28 00:00:00 --- --- -0.0014 0.00821
2010-03-31 00:00:00 --- --- 0.0405 0.049959
2010-04-30 00:00:00 --- --- 0.0396 -0.007146
2010-05-31 00:00:00 --- --- -0.0736 -0.079834
2010-06-30 00:00:00 - -- --- -0.0658 -0.028655
2010-07-31 00:00:00 --- --- 0.0535 0.038826
2010-08-31 00:00:00 --- --- -0.0031 -0.013885
2010-09-30 00:00:00 -- - --- 0.0503 0.045781
2010-10-31 00:00:00 --- --- 0.0499 0.025335
2010-11-30 00:00:00 --- --- 0.012 -0.007495
我已经尝试了下面为类似问题提供的代码,但看起来它不再起作用了......
import pandas as pd
import numpy as np
# your DataFrame; df = ...
pd.rolling_apply(df, 12, lambda x: np.prod(1 + x) - 1)
...并且我被重定向的页面似乎不那么相关。
理想情况下,我想重现 DataFrame 但有 12 个月的回报,而不是每月,所以我可以根据月份找到相关的 12 个月回报。