0
我想計算一個系列的公式,其中包括前一行(或時段中的時間序列)的值。在熊貓中計算自迴歸公式
具體而言,公式爲x[i] = b * x[i-1]
,第一行除外,僅爲b
。 .shift(1)
沒有做這項工作,因爲它沒有改變這個值。
我使用了一個循環,但我正在尋找一個更優雅的版本(即熊貓功能)。
import numpy as np
import pandas as pd
first = pd.Series(np.arange(0.0,13.0))
b = 0.5
second = pd.Series(b)
for i in range(1, first.shape[0]):
second[i] = b*second[i-1]
second.head()
#0 0.50000
#1 0.25000
#2 0.12500
#3 0.06250
#4 0.03125
#dtype: float64
PS:我不知道這個問題更好。如果你這樣做,請讓我知道。
難道不應該寧可'pd.Series(B **第一)'?畢竟,無法保證數字在我的向量長度上增加了'1'。 – MERose
@MERose基於問題中發佈的代碼,您只需使用形狀參數來創建數組'second':'for i in range(1,first.shape [0]):'。所以,不,它不會是'pd.Series(b ** first)'。如果無法保證矢量的長度增加1,請相應地編輯問題。 – Divakar
這只是恰好增加1的示例數據。爲了概括您的答案,沒有必要編輯問題。 – MERose