python - 如何使用最新的 pandas 版本计算扩展协整?

标签 python pandas

使用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/

相关文章:

python - 使用 Flask-Security 在代码中修改密码

python - 使用Jython编译器编译Python 2.7代码

python - 如何将第一列的值添加到新数组?

python - 带有 pandas groupby multiindex 的箱线图,用于来自 multiindex 的指定子级别

python - 如何避免 PyGame 中圆形和矩形之间的小故障碰撞?

python - 使用按钮在plotly python中过滤不同的数据

python - OpenCV 找不到 ORB

python - psycopg2.编程错误: incomplete placeholder: '%(' without ')'

python - Pandas 按组值过滤行

Python Pandas - 合并 CSV 并添加文件名