我基本上想應用這個公式:((New/Old)^4 - 1) * 100。對于我擁有的資料框并創建一個名為“Annualized Growth Rate”的新列,我一直在使用 FRED GDP 資料集.
我有一個看起來像這樣的資料集(不是實數)
| 指數 | 國內生產總值 |
|---|---|
| 0 | 100 |
| 1 | 101 |
| 2 | 103 |
| 3 | 107 |
我想在右側添加一個應用我上面提到的公式的列,以便年化增長率數字將開始出現在 index = 1 位置
| 指數 | 國內生產總值 | 年化_Growth_Rate |
|---|---|---|
| 0 | 100 | 鈉 |
| 1 | 101 | 4.060 |
| 2 | 103 | 8.159 |
| 3 | 107 | 16.462 |
我該怎么做。我最初是想用 iterrows() 來做的
for index,row in iterrows():
df['Annualized Growth Rate'] = df['GDP'].loc[index] / df.['GDP'].loc[index - 1]...
但隨后索引位置 -1 超出范圍。
我假設有一種簡單的方法可以解決這個問題,我只是不知道。我也知道你真的不應該使用像 iterrows 這樣的東西。
uj5u.com熱心網友回復:
您可以使用shift訪問前一行和向量操作進行減法、除法、冪、乘法:
df['Annualized_Growth_Rate'] = df['GDP'].div(df['GDP'].shift()).pow(4).sub(1).mul(100)
輸出:
Index GDP Annualized_Growth_Rate
0 0 100 NaN
1 1 101 4.060401
2 2 103 8.159184
3 3 107 16.462528
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496113.html
