gpt4 book ai didi

python - 如何根据 Python 数据框中的每月观察结果计算 12 个月的返回?

转载 作者:行者123 更新时间:2023-12-01 07:34:49 25 4
gpt4 key购买 nike

如何计算 Pandas DataFrame 上的滚动累积乘积。

我在 pandas DataFrame 中有一个时间序列的返回。如何计算 DataFrame 中相关列的滚动年化 alpha?我通常会使用 Excel 并执行以下操作:=PRODUCT(1+[trailing 12 Months])-1

我的数据框如下所示(一小部分):

                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 个月返回。

最佳答案

如果我理解正确,你可以尝试如下:

import pandas as pd
import numpy as np

#define dummy dataframe with monthly returns
df = pd.DataFrame(1 + np.random.rand(20), columns=['returns'])

#compute 12-month rolling returns
df_roll = df.rolling(window=12).apply(np.prod) - 1

关于python - 如何根据 Python 数据框中的每月观察结果计算 12 个月的返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57034085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com