計算を実行しようとしていて、同じパンダデータフレームをループして同じ計算を実行しますが、変更された変数(ループするたびに増加する変数)ループ範囲を1に設定すると、すべての行が正しく計算され、新しいデータフレームが作成されます。ただし、実際にプログラムをループさせようとすると、最初の行を除くすべてのNaN値になります。複数のデータフレームのルーピングが正しく計算されない
オメガループ
for i in range(10):
#Determine first and last Julian dates of data
t1 = df.ix[:0,'jd']
t2 = df.ix[n-1:,'jd']
t2 = t2.reset_index(drop=True)
tj = t2-t1
#Iterate over each observation within each star file
jd = df['jd']
dmag = df['dmag']
sinw = np.sin(2*omega*jd)
sum1 = sinw.sum()
cosw = np.cos(2*omega*jd)
sum2 = cosw.sum()
#Calculate tau
tau = ((np.arctan(sum1/sum2))/(2*omega))
avgdmag = dmag.sum()/n
#Calculate sample variance
tot = (df['dmag']-avgdmag)**2
tot2 = tot.sum()
var = tot2/(n-1)
#Calculate sums for power series
sum3 = sum3 + ((dmag - avgdmag)*np.cos(omega*(jd-tau)))
sum4 = sum4 + (np.cos(omega*(jd-tau)))**2
sum5 = sum5 + ((dmag - avgdmag)*np.sin(omega*(jd-tau)))
sum6 = sum6 + (np.sin(omega*(jd-tau)))**2
#Calculate power series and normalized power series
px = (((sum3**2)/sum4)+((sum5**2)/sum6))/2
pn = px/var
#Step through sequential frequencies
omega = omega + (1/tj)
Iはまた、端部にオメガ用語によって引き起こさnumpyのから実行時の警告を受けました。私は実際の計算に問題を引き起こさなかったので、無効な警告を無効にしました。誤って計算される最初のデータフレームはとcosw
です。その後計算されるデータフレームはすべてNaN値を持ちます。
私は範囲(10)内にあります:---私はループ内で "i"を見ません。 – Merlin
私はもともと「i」だけ印刷していたため、進捗状況を確認できましたが、計算に「i」を使用する必要はありません。しかし、私は 'range()'関数のステップサイズとして、最後に 'omega'を使用できますか? – Justin