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 **最初)'ではありません。ベクタの長さが1ずつ増加していることが保証されていない場合は、それに応じて質問を編集してください。 – Divakar
これは単なるデータの増加例です。回答を一般化するには、質問を編集する必要はありません。 – MERose