У меня проблемы с алгоритмом Боллинджера. Я хочу применить этот алгоритм к моим данным временного ряда.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]
Результат "пр" переменной:
[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 вы должны пройти серию или DataFrame к rolling_mean, а не список. (См. Http://pandas.pydata.org/pandas-docs/stable/generated/pandas.rolling_mean.html#pandas.rolling_mean) –
Спасибо, я преобразовал список в df, теперь у меня есть еще одна ошибка. У меня есть результат NaN в результате переменных ave и sd. @StefanReinhardt – serenade
это вызвано длиной attibute ... –