pythonでデータフレームに値を追加したい

前提

python初心者ですので、初歩的な質問かもしれませんがよろしくお願いいたします。
pythonでフィッティングを行っています。複数のデータで行ったフィッティングの結果をデータフレームに追加していきたいです。

実現したいこと

最終的にフィッティングの結果のパラメータ(y2、self.popt)と決定係数、P値、x軸(時間)の値をナンバリングした状態でcsvに出力したいです。
その前段階のデータフレームの作成で止まっています。

発生している問題・エラーメッセージ

このようにarrayの中身にパラメータを追加したいのが、一回ごとに更新されてしまいます。

エラーメッセージ

Power_divergenceResult(statistic=14739.235149678341, pvalue=0.0) 0.47724462810788626 [10.8862176 0.81760087 -0.38373453 0.30375635] [array([10.8862176 , 0.81760087, -0.38373453, 0.30375635])] catch ValueError: 64.05 time value 633 31.65 -23.970258 634 31.70 -22.176455 635 31.75 -19.466094 636 31.80 -16.746808 637 31.85 -14.018522 ... ... ... 1429 71.45 -10.981983 1430 71.50 -10.981983 1431 71.55 -11.281157 1432 71.60 -11.605140 1433 71.65 -11.904087 [801 rows x 2 columns] 801 a: 1.145967e+01 b: 7.482234e-01 c: -4.888179e-01 d: -5.623687e-01 Power_divergenceResult(statistic=2588.3983082296504, pvalue=3.805434090341532e-187) 0.5573856901876979 [11.45967006 0.74822345 -0.48881785 -0.56236873] [array([11.45967006, 0.74822345, -0.48881785, -0.56236873])]

python

def do_fitting(self):   try: param_initial = np.array((10, np.pi/4, 0, 0)) # initial guess param_bounds = ((1, np.pi/10, -100, -np.pi), (100, np.pi/2, 100, np.pi)) # bounds for parameter self.popt, self.pcov = curve_fit(self.f, self.x, self.y, p0=param_initial, bounds=param_bounds) print('a: {0:e}\nb: {1:e}\nc: {2:e}\nd: {3:e}'.\ format(self.popt[0], self.popt[1], self.popt[2], self.popt[3])) y1=fit_func(self.x, *self.popt) print(y1) #kainizyou chi2 = stats.chisquare(self.y, f_exp = y1) #chi2 = np.array(chi2) print(chi2) #ketteikeisuu r_squared = 1 - (np.sum((self.y - y1)**2) / np.sum((self.y-np.mean(self.y))**2)) print(r_squared) y2=(self.popt) print(y2) result = [] except ValueError as e: print('catch ValueError:', e) result.append(y2) # 結果を追加 #gazouhozonn #dami-de-tanonyuuryoku else: result.append(y2) # 結果を追加 print(result)

補足情報(FW/ツールのバージョンなど)

ここで定義した関数do_fittingをfor文の中で回しています。
exceptで除いた部分のパラメータはダミーデータ(999,999,999,999)を入れられるようにしたいです

コメントを投稿

0 コメント