如何在 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 中对字典中的数据进行排序