我有一个包含市场数据的数据框和一个专用于每日返回的列。 我很难创建一个以 100,000.00 美元的值(value)开始的投资组合,并计算其在数据系列生命周期内的累计返回。
理想情况下,我想使用 pandas 计算“投资组合”列,但我在这样做时遇到了问题。请参阅下面的目标输出。谢谢。
index date index return portfolio
0 19900101 2000 Nan 100000.00
1 19900102 2002 0.001 100100.00
2 19900103 2020 0.00899 100999.90
3 19900104 2001 -0.00941 100049.49
最佳答案
通过使用cumprod
df['P']=df['return'].add(1).fillna(1).cumprod()*100000
df
Out[843]:
index date index.1 return portfolio P
0 0 19900101 2000 NaN 100000.00 100000.00000
1 1 19900102 2002 0.00100 100100.00 100100.00000
2 2 19900103 2020 0.00899 100999.90 100999.89900
3 3 19900104 2001 -0.00941 100049.49 100049.48995
一些调整:
df=df.replace('Nan',np.nan)
df['return']=pd.to_numeric(df['return'])
关于python pandas 投资组合返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48451716/