如何在 Python 中对我的 Dataframe 的每一列进行 ADF 测试?

Posted

技术标签:

【中文标题】如何在 Python 中对我的 Dataframe 的每一列进行 ADF 测试?【英文标题】:How to do the ADF Test for each column of my Dataframe in Python? 【发布时间】:2021-06-30 08:29:01 【问题描述】:

我正在寻找一种对 DataFrame 的多列进行 ADF 测试的方法。 任何想法?谢谢。

这是我的多列数据框,如何分别计算每一列的测试

enter image description here

【问题讨论】:

【参考方案1】:

不确定您的数据,但您可以使用 statsmodels 库。这是关于 ADF 测试的文档:https://www.statsmodels.org/stable/generated/statsmodels.tsa.stattools.adfuller.html

【讨论】:

【参考方案2】:

这是一个可以应用于 DataFrame 列的函数:

from statsmodels.tsa.stattools import adfuller
import pandas as pd


def adfuller_test(series, signif=0.05):
"""
Perform Augmented Dickey-Fuller to test for Stationarity of the given series
and print report. Null Hypothesis: Data has unit root and is non-stationary.

series: time series in pd.Series format
signif: significance level for P-value to reject Null Hypothesis
"""
    x = adfuller(series, autolag='AIC')

    #using dictionary saves different data types (float, int, boolean)
    output = 'Test Statistic': x[0], 
              'P-value': x[1], 
              'Number of lags': x[2], 
              'Number of observations': x[3],
              f'Reject (signif. level signif)': x[1] < signif 

    for key, val in x[4].items():
         output[f'Critical value key'] = val

return pd.Series(output)

您可以关注df_train.apply(lambda x: adfuller_test(x), axis=0) 以获取摘要。

【讨论】:

以上是关于如何在 Python 中对我的 Dataframe 的每一列进行 ADF 测试?的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 Go gorm 在 Postgres 中对我的自引用外键强制非空约束

如何在 Spark 中对嵌套的 Dataframe 进行平面映射

如何使用 Pandas 在 Python 中对字典中的数据进行排序

如何在熊猫 DataFrame 中对连续值进行分组

是否可以在 Pyspark 中对 DataFrame 进行子类化?

如何在 Python 中对数据框列进行一次热编码?