【发布时间】:2019-05-02 05:52:03
【问题描述】:
我有一个时间序列,其中时间单位是毫秒,而序列 大约有3000个条目。我试图找出季节性 这个系列的,例如检测数据中的任何周期性故障。数据是 表示为 pandas 数据框。
我尝试使用 statsmodel 中的seasonal_decompose() 方法,如下所示:
import pandas as pd
data = pd.read_csv('Sample_data.csv',index_col=0)
data.index = pd.to_datetime(data.index)
print(data.head())
## Sample_values
## Dates
## 1970-01-01 05:30:00.000000 0.466812
## 1970-01-01 05:30:00.016667 0.218692
## 1970-01-01 05:30:00.033333 0.938067
## 1970-01-01 05:30:00.050000 0.480025
## 1970-01-01 05:30:00.066667 0.915175
print(type(data))
## <class 'pandas.core.frame.DataFrame'>
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(data, model='additive')
fig = result.plot()
但是会导致如下错误:
ValueError: You must specify a freq or x must be a pandas object with a timeseries index with a freq not set to None
但是,如果我对 x 轴单位以月为单位的数据集使用相同的代码(例如,从 https://www.analyticsvidhya.com/wp-content/uploads/2016/02/AirPassengers.csv 下载),那么我不会收到任何错误,并且我会按预期从seasonal_decompose() 获得 4 个图。
那么我如何检测我的数据类型的季节性模式,它只跨越 几个小时?
【问题讨论】:
标签: python pandas statsmodels