我试图从pyculiarity运行detect_ts函数,但是在python中传递一个二维数据时会出现这个错误。
>>> import pandas as pd
>>> from pyculiarity import detect_ts
>>> data=pd.read_csv('C:\\Users\\nikhil.chauhan\\Desktop\\Bosch_Frame\\dataset1.csv',usecols=['time','value'])
>>> data.head()
time value
0 0 32.0
1 250 40.5
2 500 40.5
3 750 34.5
4 1000 34.5
>>> results = detect_ts(data,max_anoms=0.05,alpha=0.001,direction = 'both')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Windows\System32\pyculiar-0.0.5\pyculiarity\detect_ts.py", line 177, in detect_ts
verbose=verbose)
File "C:\Windows\System32\pyculiar-0.0.5\pyculiarity\detect_anoms.py", line 69, in detect_anoms
decomp = stl(data.value, np=num_obs_per_period)
File "C:\Windows\System32\pyculiar-0.0.5\pyculiarity\stl.py", line 35, in stl
res = sm.tsa.seasonal_decompose(data.values, model='additive', freq=np)
File "C:\Anaconda3\lib\site-packages\statsmodels\tsa\seasonal.py", line 88, in seasonal_decompose
trend = convolution_filter(x, filt)
File "C:\Anaconda3\lib\site-packages\statsmodels\tsa\filters\filtertools.py", line 303, in convolution_filter
result = _pad_nans(result, trim_head, trim_tail)
File "C:\Anaconda3\lib\site-packages\statsmodels\tsa\filters\filtertools.py", line 28, in _pad_nans
return np.r_[[np.nan] * head, x, [np.nan] * tail]
TypeError: 'numpy.float64' object cannot be interpreted as an integer
发布于 2017-09-19 19:49:20
您的代码的问题可能是np.nan
是一个float64
类型值,但是np.r_[]
需要方括号内的逗号分隔的整数。因此,您需要首先将它们转换为整数类型。
但我们这里有另一个问题。
return np.r_[[(int)(np.nan)] * head, x, [(int)(np.nan)] * tail]
这应该解决了普通案件中的问题.但是在这种情况下,它不能工作,因为NaN不能被转换为整数类型.。
ValueError: cannot convert float NaN to integer
因此,除非我们知道你们在这里试图做什么,否则就无法提出适当的解决办法。尝试提供更多关于您的代码的细节,您肯定会得到我们的帮助。
:-)
https://stackoverflow.com/questions/42289738
复制相似问题