使用this将答案发布为计算模板,我收到折旧警告: FutureWarning: pd.expanding_apply 已弃用于 Series,并将在未来版本中删除,替换为 Series.expanding(min_periods=36).apply(args=,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 实例作为第一个参数调用未绑定(bind)的方法expanding()(没有任何内容)
有什么想法可以解决这个问题吗?
最佳答案
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 \
关于python - 如何使用最新的 pandas 版本计算扩展协整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41984920/