我有布林帶算法的麻煩。我想將這個算法應用於我的時間序列數據。AttributeError:'list'對象沒有屬性'dtype'
的代碼:
length = 1440
dataframe = pd.DataFrame(speed)
ave = pd.stats.moments.rolling_mean(speed,length)
sd = pd.stats.moments.rolling_std(speed,length=1440)
upband = ave + (sd*2)
dnband = ave - (sd*2)
print np.round(ave,3), np.round(upband,3), np.round(dnband,3)
輸入:
speed=[96.5, 97.0, 93.75, 96.0, 94.5, 95.0, 94.75, 96.0, 96.5, 97.0, 94.75, 97.5, 94.5, 96.0, 92.75, 96.5, 91.5, 97.75, 93.0, 96.5, 92.25, 95.5, 92.5, 95.5, 94.0, 96.5, 94.25, 97.75, 93.0]
「AVE」 變量的結果:
[1440行×1列] 0 0的NaN 1的NaN 2 NaN 3 NaN 4 NaN 5 NaN 6的NaN 7的NaN 8的NaN 9的NaN 10的NaN 11的NaN 12的NaN 13的NaN 14的NaN 15的NaN 16的NaN 17的NaN
據我瞭解的rolling_mean你應該通過一系列的文檔或數據框的rolling_mean,而不是一個列表。 (請參閱http://pandas.pydata.org/pandas-docs/stable/generated/pandas.rolling_mean.html#pandas.rolling_mean) –
謝謝,我將列表轉換爲df,現在我有另一個錯誤。由於ave和sd變量,我得到了NaN結果。 @StefanReinhardt – serenade
這是由長度attibute造成的... –