如何使用最新的熊猫版本来计算扩展协整?

时间:2017-02-01 16:35:39

标签: python pandas

使用this帖子答案作为计算模板,我收到折旧警告:FutureWarning:pd.expanding_apply已弃用于系列,将在未来版本中删除,替换为Series.expanding(min_periods = 36) )。适用(参数=,FUNC =,kwargs =)

旧代码:

import pandas as pd
import statsmodels.api as sm

data = sm.datasets.macrodata.load_pandas().data

def rolling_coint(x, y):
    yy = y[:len(x)]
    # returns only the p-value
    return sm.tsa.coint(x, yy)[1]

historical_coint = pd.expanding_apply(data.realgdp, rolling_coint, 
                                      min_periods=36, 
                                      args=(data.realdpi,))

如何使用Pandas 0.19.2编写最后一行代码?

我试过了:hist_coint = pd.DataFrame.expanding(min_periods=20).apply(data.realgdp, rolling_coint, args = (data.realdpi,))

出现以下错误:TypeError:必须使用DataFrame实例作为第一个参数调用unsbound方法expanding()(没有任何替代)

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

Series.expanding().apply()的语法已从v0.18.0开始修改,如下所示:

data.realgdp.expanding(min_periods=36).apply(rolling_coint, args=(data.realdpi,))
# <-SERIES->.expanding(..............).apply(<---FUNC---->, args=(......))
#                                                               / passed \ 
#                                                              / as tuple \