使用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()(没有任何替代)
任何想法如何做到这一点?
答案 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 \