【发布时间】:2021-11-29 07:19:25
【问题描述】:
目标:尝试在我自己的 CSV 数据集上应用时间序列分解来查找 LeftHipAngle 列的趋势、季节性和噪声
我想使用 pandas 数据框对 CSV(找到 here)应用时间序列分解,但我不断收到频率错误。我的流程如下:
第 1 步:将 CSV 加载到 Pandas 数据框
from statsmodels.tsa.seasonal import seasonal_decompose
from dateutil.parser import parse
# Decomposition of a Time Series
import pandas as pd
url = 'https://raw.githubusercontent.com/lucaphen/EEE4022S/main/subject_31_angle_joints.csv'
df = pd.read_csv(url, parse_dates=['Time'], index_col='Time')
# dataset has duplicated time values passed 460 rows, which cause errors,
# ...so I limit the value to 420
df = df[:420]
print(df.head())
print(type(df))
结果可见here
第 2 步:使用 Statsmodel 访问seasonal_decomposition 函数
# Use Statsmodel to decompose time-series
result_mul = seasonal_decompose(df['LeftHipAngle'], model='multiplicative', extrapolate_trend='freq')
在这里,我收到一个错误:
ValueError:频率 L 不理解。如果您认为这是错误的,请报告。
尝试诊断
我认为问题与时间序列的频率有关,以毫秒为单位(即“L”),但是当我在第一步代码中的df = df[:420] 下添加df = df.asfreq('L') 时,我收到此错误(@ 987654323@)。
如果有任何帮助,我将不胜感激,我正在尝试合并自定义 .csv 文件以进行时间序列分析。
【问题讨论】:
标签: python pandas time-series statsmodels