假设我们有一个名为"portfolio"的pandas DataFrame,其中包含三个列:日期、周度净值和投资组合的权重。我们可以使用以下代码来计算投资组合的年化收益率:

import pandas as pd

# 计算每周收益率
portfolio['weekly_return'] = portfolio['net_value'].pct_change()

# 将数据按周聚合
weekly_returns = portfolio.groupby(pd.Grouper(key='date', freq='W')).agg({'weekly_return': 'sum'})

# 计算年化收益率
annual_return = (1 + weekly_returns['weekly_return']).cumprod()[-1]**(52/len(weekly_returns)) - 1

# 打印结果
print("投资组合的年化收益率为: {:.2%}".format(annual_return))

首先,我们通过计算每周收益率来创建一个新的"weekly_return"列。然后,我们使用groupby函数将数据按周聚合,并计算每周的收益率之和。接下来,我们使用累积乘积函数来计算投资组合的总收益率,并将其提升到年度级别,最后再减去1来得到年化收益率。最后,我们使用字符串格式化来打印结果。

pandas根据周度净值计算投资组合年化收益率

原文地址: https://www.cveoy.top/t/topic/btvj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录