0
我目前正在嘗試計算多列數據的半衰期結果。我試圖合併我從'pythonforfinance.com'的代碼Link。運行半衰期代碼的平均回覆系列
但是,我似乎錯過了一些導致錯誤被引發的編輯。
這是我的DF的樣子:Link
和代碼我運行:
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)
正被拋出的錯誤是:基於錯誤
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