You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Statsmodel的adfuller函数报错TypeError: 'function' object is not subscriptable求助

问题原因

你出现TypeError: 'function' object is not subscriptable报错的根源不是dftest[0:4]这行,是循环遍历临界值的那行变量名写错了:

# 错误写法
for key, value in df_total[4].items():

adfuller接口返回的所有检验结果都存储在dftest变量中,dftest的第4位索引对应的值才是存储不同显著性水平临界值的字典,你误用了数据集变量df_total,如果你的运行环境中恰好有和df_total重名的函数,就会触发函数无法被下标索引的报错。

修复后的完整代码
from statsmodels.tsa.stattools import adfuller
import pandas as pd

def adf_test(dataset):
    print("Results of Dickey-Fuller Test:")
    dftest = adfuller(dataset, autolag="AIC")
    dfoutput = pd.Series(
        dftest[0:4],
        index=[
            "Test Statistic",
            "p-value",
            "#Lags Used",
            "Number of Observations Used",
        ],
    )
    # 将df_total改为dftest即可
    for key, value in dftest[4].items():
        dfoutput["Critical Value (%s)" % key] = value
    print(dfoutput)

adf_test(df_total['Total Deaths'])

如果修改后仍有同类型报错,检查你的运行环境中是否有和df_total重名的自定义函数,修改重名函数名称后重新运行即可。

内容的提问来源于stack exchange,提问作者JamesArthur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:18:03