Python调用adfuller实现Series平稳性检验的代码语法修正咨询
平稳性检验函数修复方案
你的代码存在3处会导致运行失败的问题,对应修改点如下:
- 函数定义行缺失必填冒号:Python语法要求
def声明函数的行尾必须添加半角冒号:,缺失会直接触发SyntaxError。 - 代码块缩进不规范:
if/else判断逻辑属于函数体内的一级代码,和result = adfuller(Series)属于同一缩进层级,原代码中额外多缩进了一层,会触发IndentationError。另外if后面的条件判断不需要额外加括号,Python不强制要求,去掉也不影响运行。 - 缺失依赖导入:
adfuller是statsmodels库提供的ADF单位根检验方法,使用前必须先从对应模块导入,否则会触发NameError。
修复后的完整可运行代码:
# 导入ADF检验依赖 from statsmodels.tsa.stattools import adfuller def stationary(series): result = adfuller(series) # ADF检验p值小于0.05时,拒绝存在单位根的原假设,判定序列平稳 if result[1] < 0.05: return 'stationary' else: return 'not stationary'
使用提示:调用函数时请传入无缺失值的一维数值序列(pandas Series、numpy数组均可),存在缺失值会导致adfuller计算报错。
内容的提问来源于stack exchange,提问作者ire
相关产品推荐
相关产品推荐

