現在、複数のデータ列に対して半減寿命の結果を計算しようとしています。私は 'pythonforfinance.com'から得たコードを組み込もうとしましたLink。平均復帰シリーズの半減期コードを実行
しかし、私はエラーがスローされているいくつかの編集を見逃しているようです。
これは以下のように私のDFがどのように見えるかです:スローされたエラーがある
import pandas as pd
import numpy as np
import statsmodels.api as sm
df1=pd.read_excel('C:\\Users\Sai\Desktop\Test\Spreads.xlsx')
Halflife_results={}
for col in df1.columns.values:
spread_lag = df1.shift(periods=1, axis=1)
spread_lag.ix([0]) = spread_lag.ix([1])
spread_ret = df1.columns - spread_lag
spread_ret.ix([0]) = spread_ret.ix([1])
spread_lag2 = sm.add_constant(spread_lag)
md = sm.OLS(spread_ret,spread_lag2)
mdf = md.fit()
half_life = round(-np.log(2)/mdf.params[1],0)
print('half life:', half_life)
:Link
と私が実行しているコードのエラーに基づいて
File "C:/Users/Sai/Desktop/Test/Half life test 2.py", line 12
spread_lag.ix([0]) = spread_lag.ix([1])
^
SyntaxError: can't assign to function call
メッセージは、私は非常に基本的な間違いをしたようですが、私は初心者ですから問題を解決できません。そうでない場合は、このコードを解決、コードのこれらの行への説明は、大きな助けになるでしょう:
spread_lag = df1.shift(periods=1, axis=1)
spread_lag.ix([0]) = spread_lag.ix([1])
spread_ret = df1.columns - spread_lag
spread_ret.ix([0]) = spread_ret.ix([1])
spread_lag2 = sm.add_constant(spread_lag)
私は上記を試してみましたが、コードは別のエラー投げ - [リンク](http://prntscr.com/bpj4g4を)私は私はコード内の列を参照しています方法とは何かであることを理解することができます。しかしそれ以上のものはありません。ありがとうbtw! – Sam18J
上記の編集済みの回答を参照 – jodoox
完璧な結果を得ました。ありがとう! – Sam18J