几何平均数?

2024-05-15 02:26:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算我的投资组合的股票回报率,这需要按年度“几何平均”百分比

为简单起见,我有一个如下所示的数据框:

日期申报表

2013-06-01 1%
2013-07-01 5%
2013-08-01-4%
2014-01-01 12%
2014-02-01-9%

我希望输出显示:

日期地理信息申报表 2013 1.8% 2015年1.9%

由以下公式得出:(1+.01)(1+.05)(1+-.04)=1.8%

我可以按年使用groupby函数,但它只对我求和,我无法得到几何平均值。有人能帮忙吗

谢谢


Tags: 数据函数地理信息公式平均值股票百分比groupby
1条回答
网友
1楼 · 发布于 2024-05-15 02:26:58

请注意,您要求的是累积乘积,这与几何平均数的通常定义不同

df["returns"] = 1 + .01*df.Returns.str.split("%").str[0].astype(int)
df["geom_ave"] = df.groupby(df.Date.dt.year).returns.transform("prod")

输出:

        Date Returns  returns  geom_ave
0 2013-06-01      1%     1.01   1.01808
1 2013-07-01      5%     1.05   1.01808
2 2013-08-01     -4%     0.96   1.01808
3 2014-01-01     12%     1.12   1.01920
4 2014-02-01     -9%     0.91   1.01920

如果您想要几何平均值,可以尝试:

from scipy import stats
series = df.groupby(df.Date.dt.year).returns.apply(stats.gmean)

相关问题 更多 >

    热门问题