Я пытаюсь установить модель ARIMA для некоторых данных, для этого я использовал 'autocorrelation_plot ()' со своими временными рядами.Однако это приводит к ошибке в заголовке.
У меня есть таблица атрибутов, состоящая, среди прочего, из полей даты и времени.Я извлек их (после преобразования таблицы атрибутов в пустую таблицу), поместил их в переменную datetime и добавил их все в список:
O,A = [],[]
dt = datetime.strptime(dt1, "%Y/%m/%d %H:%M")
A.append(dt)
Затем я попытался создать временные ряды и распечатать ихчтобы быть уверенным в результатах:
data2 = pd.Series(A, O)
print data2
Результаты были удовлетворительными, пока я не решил автокоррелировать:
Команда автокорреляции:
autocorrelation_plot(data2)
Послеэта команда возвращает:
TypeError: ufunc add не может использовать операнды с типами dtype ('M8 [ns]') и dtype ('M8 [ns]')
Я полагаю, это связано с преобразованием datetime.strptime в numpy?Я пытался следовать некоторым предложениям из предыдущих вопросов index.to_pydatetime () , dtype, M8 [ns] ошибка ..., напрасно.
Минимальный воспроизводимый пример:
from pandas import datetime
from pandas import DataFrame
import pandas as pd
from matplotlib import pyplot as plt
from pandas.tools.plotting import autocorrelation_plot
arr = arcpy.da.TableToNumPyArray(inTable ,("PROVINCE","ZONE_CODE","MEAN", "Datetime","Time"))
arr_length = len(arr)
j = 1
O,A = [],[]
while j<=55: #I have 55 provinces
i = 0
while i<arr_length:
if arr[i][1]== j:
O.append(arr[i][2])
c = str(arr[i][3])
d = str(c[0:4]+"/"+c[5:7]+"/"+c[8:10])
t = str(arr[i][4])
if t=="10":
dt1 = str(d+" 10:00")
else:
dt1 = str(d+" 14:00")
dt = datetime.strptime(dt1, "%Y/%m/%d %H:%M")
A.append(dt)
i = i+1
data2 = pd.Series(A, O)
print data2
autocorrelation_plot(data2)
del A[:]
del O[:]
j += 1
Снимок экрана результатов: результаты