我有一個數據集,包含幾年內每天的美國國庫券曲線。行=日期,列=特定國債的期限(3個月,1年,10年等)大熊貓和循環計數器的問題
我有一個python代碼,循環每一天,並校準利率模型的參數。我無法循環遍歷每行通過iterrows和我的循環計數器。我們的目標是逐行進行校準,並將校準參數存儲在數據幀中,然後移動到下一行並重復。
def do_calibration_model1():
global i
for index, row in curves.iterrows():
day = np.array(row) #the subsequent error_fxn uses this daily curve
calibration()
i += 1
def calibration():
i = 0
param = scipy.brute(error_fxn, bounds...., etc.)
opt = scipy.fmin(error_fxn, param, xtol..., ftol...)
calibration.loc[i] = np.array(opt) # store result of minimization (parameters for that day)
該代碼對於第一次迭代正常工作,但隨後不斷重複數據幀(曲線)中第一行的校準。此外,它不會將參數存儲在校準數據幀的下一行中。我將第一個問題看作與該問題有關,而第二個問題是循環計數問題。
有什麼想法會出錯?我有一個Matlab背景,發現熊貓設置非常令人沮喪。
僅供參考我查閱了下面的鏈接無濟於事。
https://www.python.org/dev/peps/pep-0212/
http://nipunbatra.github.io/2015/06/pandas-iteration/
每傑森的評論下面我已經更新了代碼:
def do_calibration_model1():
global i
for index, row in curves.iterrows():
for i in range(0,len(curves)):
day = np.array(row) #the subsequent error_fxn uses this daily curve
param = scipy.brute(error_fxn, bounds...., etc.)
opt = scipy.fmin(error_fxn, param, xtol..., ftol...)
calibration.loc[i] = np.array(opt) # store result of minimization (parameters for that day)
i += 1
修改後的代碼現在把適當的參數基礎上,校準數據幀的每一行中循環計數器。
*但是,它仍然不會移動到熊貓iterrows函數的曲線數據框的第二個(或後續行)。
我在下面編輯了我的答案,以解決您的問題的部分問題。讓我知道這是否有幫助。 – user6275647