データフレームに保存してあるリストのデータを各値を変数として数値計算したものを出力したものを格納(リスト化)してグラフにしたいです.
各値はforループで出力できるのですが,その値を .append() を用いて保存しようとしてもエラーがおきてしまいます.
σD[]とσA[]はCSVファイルから取ってきたものを配列にしました.
kA,kFRET,kD,Iは別の場所で計算した数値です.
ちなみに
kA =333333333.3333333
kD =256410256.4102564
kFRET = 22988510524.344707
I = 30
醜いコードで申し訳ないです.足りないところがあれば教えてください.
python
1#吸収断面積 2import pandas as pd 3df = pd.read_csv('Alexa Fluor 594 spectrum.csv') 4 5f = lambda x: ((3.823e-23)*805*x)#ε=εA/maxドナーのモル吸光係数 6 7df['Excitation'].apply(f) 8 9σD = [] 10σD = df['Excitation'].apply(f) 11 12 13print(σD) #吸収断面積(ドナー)を入手 14 15df = pd.read_csv('Cy5 spectrum.csv') 16 17f = lambda x: ((3.823e-23)*2500*x)#ε=(εAモル吸光係数のピーク/max励起スペクトルのピーク) 18 19df['Excitation'].apply(f) 20 21σA = [] 22σA = df['Excitation'].apply(f) 23 24 25print(σA) #吸収断面積(アクセプタ)を入手 26 27 28λ = [] 29E1_analy = [] 30E2_analy = []#グラフ用配列を用意 31 32λ = 0 33 34while λ < 650: 35 36 E1_analy = σD[λ]*I/(kFRET+kD) 37 E2_analy = (1/kA)*(kFRET*E1_analy+σA[λ]*I) 38 39 λ += 1 40 41 E1_analy.append() 42 E2_analy.append() 43 44 print(λ) 45 print(E1_analy) 46 print(E2_analy) 47 48 49 50plt.plot(λ,E1_analy) 51plt.plot(λ,E1_analy) 52plt.legend() 53plt.show() 54
AttributeError Traceback (most recent call last)
<ipython-input-105-5a762b03f8b9> in <module>
12 λ += 1
13
---> 14 E1_analy.append()
15 E2_analy.append()
16
AttributeError: 'numpy.float64' object has no attribute 'append'
回答3件
あなたの回答
tips
プレビュー