我真的很纠结于python的一个问题。我正在计算一个等加权股票投资组合的美元回报率。我有以下5只股票(SPY, DIS, XLK, BTC和ARKK)和投资组合的月回报,但我在最后一次计算中遇到了问题。
下面的数据帧看起来像这样
-
average列是所有股票的行平均值回报。)
-
美元回报是我需要解决的问题
我有平均列,如:
平均值 | -0.038120 | -0.078641
---|
假设您有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