我試圖通過相同的數據幀的熊貓來執行計算,然後循環,並執行相同的計算,但具有改變的變量(一個,每個它循環時間增加)。如果循環範圍設置爲1,則所有行均可正確計算並創建新的數據框。但是,嘗試實際循環程序會導致除第一行以外的所有NaN值。通過多個dataframes循環不計算正確
歐米茄環
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)
我也收到一個運行時從由在端部中的ω術語NumPy的警告。我禁用了「無效」警告,因爲它不會對實際計算造成影響。錯誤地計算第一個數據幀是和cosw
。隨後所有計算的數據幀都有NaN值。
我在範圍內(10):---我沒有看到「我」在循環中。 – Merlin
我本來只是打印出「我」,所以我能看到進步,但我並不需要使用在計算中的「i」。雖然,我可以在'range()'函數中將末尾的'omega'作爲步長嗎? – Justin