簡體   English   中英

如何將 Pandas DataFrame 中的退貨系列轉換為價格系列?

[英]How do I convert return series in Pandas DataFrame to price series?

我有一個包含資產價格回報的 Pandas DataFrame 並想創建一個新的 DataFrame 將這些回報轉換為價格系列。 我怎么做?

原始返回 dataframe 為:

      0     1     2
0  0.01  0.02  0.04
1  0.02  0.05  0.04

我想將所有系列的原始價格索引為 100.00,以便獲得以下 dataframe:

      0     1       2
0  100.00 100.00 100.00
1  101.00 102.00 104.00
2  103.02 107.10 108.16

最簡單的方法是計算相對於起始值的利息。 這可以使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM