Pandas数据框架美元回报计算



我真的很纠结于python的一个问题。我正在计算一个等加权股票投资组合的美元回报率。我有以下5只股票(SPY, DIS, XLK, BTC和ARKK)和投资组合的月回报,但我在最后一次计算中遇到了问题。

下面的数据帧看起来像这样

  • average列是所有股票的行平均值回报。)

  • 美元回报是我需要解决的问题

我有平均列,如:

tbody> <<tr>-0.0786410.102472-0.024291
平均值
-0.038120

假设您有dataframe,如:

dictionary = {'average': [-0.038120,  -0.078641, 0.102472, -0.024291]}
df = pd.DataFrame(dictionary)

然后,您可以创建function来计算您的美元回报,例如:

def calc(df):
x = 1
li = []
for i in range(len(df)):
if i == 0 :
dolor_return = (x * 1) * (1 + (df['average'][i]))
li.append(dolor_return)
else:
dolor_returns = (li[i - 1] * 1) * (1 + (df['average'][i]))
li.append(dolor_returns)
return li

它将返回list格式的值,您可以将list转换为dataframe格式,如下所示:

df['dolor_retunrs'] = calc(df)

输出将是:

Out[1]: 
average  dolor_retunrs
0 -0.038120       0.961880
1 -0.078641       0.886237
2  0.102472       0.977051
3 -0.024291       0.953318

最新更新