如何将Pandas DataFrame中的退货系列转换为价格系列?

我有一个由资产价格回报组成的Pandas DataFrame,并希望创建一个新的DataFrame将这些回报转换为价格序列。我该怎么办?

原始返回数据框为:

      0     1     2
0  0.01  0.02  0.04
1  0.02  0.05  0.04

我要为所有系列的原始价格编制索引100.00,以便获得以下数据框:

      0     1       2
0  100.00 100.00 100.00
1  101.00 102.00 104.00
2  103.02 107.10 108.16
wsg19870213 回答:如何将Pandas DataFrame中的退货系列转换为价格系列?

最简单的方法是相对于起始值计算利息。使用cumprod()可以轻松完成:

df = pd.DataFrame({0: [0.01,0.02],1: [0.02,0.05],2:[0.04,0.04]})
relative_returns = (df+1).cumprod()

#         0      1       2
# 0  1.0100  1.020  1.0400
# 1  1.0302  1.071  1.0816

要计算最终值,我们可以乘以初始值:

final_value = 100*relative_returns


#         0      1       2
# 0  101.00  102.0  104.00
# 1  103.02  107.1  108.16

重新排列表格将得到您所需的确切表格。

可以在上述过程之前进行重新排列,如下所示:

df = df.append(
        pd.Series(np.nan,index=df.columns,name=df.index.max()+1)
     ).shift().fillna(0.0)

#       0     1     2
# 0  0.00  0.00  0.00
# 1  0.01  0.02  0.04
# 2  0.02  0.05  0.04
本文链接:https://www.f2er.com/3089200.html

大家都在问