TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('<M8[ns]')
TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('<M8[ns]')
我正在尝试为某些数据设置 ARIMA 模型,为此,我在我的时间序列中使用了 'autocorrelation_plot()'。但是它会生成标题中的错误。
我有一个属性 table 由日期和时间字段组成。
我提取了它们(在将属性 table 转换为 numpy table 之后),将它们放入 'datetime' 变量并将它们全部附加到列表中:
O,A = [],[]
dt = datetime.strptime(dt1, "%Y/%m/%d %H:%M")
A.append(dt)
然后我尝试创建时间序列并打印它们以确保结果:
data2 = pd.Series(A, O)
print data2
结果令人满意,直到我决定 auto-correlate :
Auto-correlation 命令:
autocorrelation_plot(data2)
执行此命令后,returns:
TypeError: ufunc add cannot use operands with types dtype('M8[ns]') and dtype('M8[ns]')
我想这是由于 datetime.strptime 转换为 numpy 造成的?
我尝试遵循先前问题的一些建议
, ...,徒劳。
最小可重现示例:
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
结果截图:
results
我找到了一个解决方案,它看起来很野蛮,但它确实有效!
我刚刚用pd.Series“重建”了pd.Series()我有:
data2 = pd.Series(O, A)
autocorrelation_plot(pd.Series(data2))
plt.show()
我用它来解决我的问题:
import matplotlib.dates as mpl_dates
df.reset_index(inplace=True)
df['Date']=df['Date'].apply(mpl_dates.date2num)
df = df.astype(float)
我正在尝试为某些数据设置 ARIMA 模型,为此,我在我的时间序列中使用了 'autocorrelation_plot()'。但是它会生成标题中的错误。
我有一个属性 table 由日期和时间字段组成。 我提取了它们(在将属性 table 转换为 numpy table 之后),将它们放入 'datetime' 变量并将它们全部附加到列表中:
O,A = [],[]
dt = datetime.strptime(dt1, "%Y/%m/%d %H:%M")
A.append(dt)
然后我尝试创建时间序列并打印它们以确保结果:
data2 = pd.Series(A, O)
print data2
结果令人满意,直到我决定 auto-correlate :
Auto-correlation 命令:
autocorrelation_plot(data2)
执行此命令后,returns:
TypeError: ufunc add cannot use operands with types dtype('M8[ns]') and dtype('M8[ns]')
我想这是由于 datetime.strptime 转换为 numpy 造成的?
我尝试遵循先前问题的一些建议
最小可重现示例:
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
结果截图: results
我找到了一个解决方案,它看起来很野蛮,但它确实有效!
我刚刚用pd.Series“重建”了pd.Series()我有:
data2 = pd.Series(O, A)
autocorrelation_plot(pd.Series(data2))
plt.show()
我用它来解决我的问题:
import matplotlib.dates as mpl_dates
df.reset_index(inplace=True)
df['Date']=df['Date'].apply(mpl_dates.date2num)
df = df.astype(float)