第一:感谢您迄今为止提供的巨大帮助!我对在iPython中使用表格格式有疑问。

我目前正在运行以下脚本,以打印增强的Dickey-Fuller(ADF)平稳性测试:

print "Stationarity"
print sm.tsa.stattools.adfuller(df['temperature'], maxlag=None, autolag='BIC', regression='c')


输出是这样的:

Stationarity
(-6.4532219513246361, 1.5054094590984612e-08, 0, 41, {'5%': -2.9351348158036012, '1%': -3.6009833671885199, '10%': -2.6059629803688282}, 1227.2605520289471*)


*(不确定此值为Link to Documentation

现在,我的问题是:


如何对多个变量自动进行计算?是否可以创建一个包含不同列(df ['variable1'],df ['variable1'],df ['variable1'],df ['variable1']等的列表)的ADF测试每一个项目?
如何将返回的数据放入表结构?像这样:


ADF测试

可变点数t检验p值1%5%10%
温度41 6.4532 1.5054094590984612e-08 -3.600 -2.9351 -2.6059
变量2 ...
变量3 ...
 

(顺便说一句:如何将“ 1.5054094590984612e-08”转换为准确的数字?)

感谢您的支持!

最佳答案

所以我基本上删除了一些虚拟数据,基本上我为每个col建立一个dict以存储adf测试结果,然后为每个结果构建一个df:

In [12]:

df = pd.DataFrame(index = pd.date_range(start=dt.datetime(2014,1,1), end = dt.datetime(2014,6,1)))
import statsmodels.tsa.stattools as ts
df['a'] = np.random.randint(0,30,len(df.index))
df['b'] = np.random.randint(0,30,len(df.index))
​
result={}
for col in df:
    result[col] = ts.adfuller(df[col], maxlag=None, autolag='BIC', regression='c')
result
Out[12]:
{'a': (-14.5378299332063,
  5.2041541962613174e-27,
  0,
  151,
  {'1%': -3.4744158894942156,
   '10%': -2.5770812758212358,
   '5%': -2.8808783827710589},
  983.29106640612281),
 'b': (-12.247140023284922,
  9.7254933298555022e-23,
  0,
  151,
  {'1%': -3.4744158894942156,
   '10%': -2.5770812758212358,
   '5%': -2.8808783827710589},
  983.89321857804237)}
In [29]:

df_result = pd.DataFrame()
​
for k,v in result.items():
    df_result = df_result.append(pd.DataFrame(
            data={'nobs':v[3], 't-test':v[0], 'p-value':v[1], '1%':v[4]['1%'], '5%':v[4]['5%'], '10%':v[4]['10%']},
            index=[k]))
df_result.index.name = 'temperature'
df_result
Out[29]:
                   1%       10%        5%  nobs       p-value    t-test
temperature
a           -3.474416 -2.577081 -2.880878   151  5.204154e-27 -14.53783
b           -3.474416 -2.577081 -2.880878   151  9.725493e-23 -12.24714

关于python - Python/ Pandas 表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29960345/

10-12 18:12