您好,我在下面有這個資料集 5 年的資料。我只包括一個樣本。
| 日期 | 歐洲 |
|---|---|
| 4月23日 | -0.3% |
| 4月16日 | -0.7% |
| 4月9日 | 1% |
| 4月2日 | 2% |
| 3月26日 | 3% |
我想找出兩個日期之間的平均值。例如,4 月 23 日至 3 月 26 日之間的平均值應為 1.35%。重要的是要注意它需要在兩個日期之間,而不是滾動平均值。
我試圖在兩個周期之間進行平均,例如 ay/y 變化計算,但它給了我一個錯誤。行之間的差異將是恒定的 52 行。所以我需要找到第 52 行和第 1 行之間的平均值。
Y/Y 變化計算
df=df.pct_change(periods = -52)
df=df.mean(periods=-52) #Error#
提前感謝您的幫助。
uj5u.com熱心網友回復:
我們可以使用shift函式從前periods一行獲取值,然后將前一個值與當前值平均。
df = pd.DataFrame({
'value':[1,2,3,4,5,6,7,8,9,10]
})
df['lag_3_value'] = df['value'].shift(periods = 3)
df['avg_between_current_and_lag_3'] = (df['value'] df['lag_3_value']) / 2
輸出:
| 價值 | lag_3_value | avg_between_current_and_lag_3 |
|---|---|---|
| 1 | 楠 | 楠 |
| 2 | 楠 | 楠 |
| 3 | 楠 | 楠 |
| 4 | 1 | 2.5 |
| 5 | 2 | 3.5 |
| 6 | 3 | 4.5 |
| 7 | 4 | 5.5 |
| 8 | 5 | 6.5 |
| 9 | 6 | 7.5 |
| 10 | 7 | 8.5 |
uj5u.com熱心網友回復:
也許不是最短的線路,但它正在作業:
np.mean(df.loc[df['date'].isin(['date_one','date_two'])].value.to_numpy())
其中“值”是“歐洲”的列名
它也適用于 isin() 函式中任意數量的日期。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/484953.html
