TypeError:“Series”对象不可调用滚动窗口Python

2024-07-04 13:51:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中定义了一个Hodrick Prescott(HP)函数,如下所示:

import statsmodels.api as sm

def func_HP(close, params):
    cycle,trend = sm.tsa.filters.hpfilter(close,params)
    return trend

如果我将该函数应用于datafrate中的列,如下所示:

^{pr2}$

它工作得很好,我得到了整个“静态”列的趋势值。在

我想将HP函数应用于df['Close']列的滚动窗口。窗户的长度是240。因此,HP过滤器将应用于滚动240条记录。 我使用了以下代码:

x = df.rolling(window=240, min_periods=240, on='Close').apply(func_HP(df['Close'],18000))

但我得到了一个错误:

TypeError: 'Series' object is not callable

我想这是因为一旦应用了滚动窗口,列df['Close']就变成了一个数组:对吗?在

如何将滚动选择的结果“转换”为列?在


Tags: 函数importapidfclose定义paramstrend
1条回答
网友
1楼 · 发布于 2024-07-04 13:51:24

是的,它看起来像hp_filter函数返回一个数组。因此,您需要添加以下内容:

def func_HP(close, params):
    cycle,trend = sm.tsa.filters.hpfilter(close,params)
    df_trend = pd.dataframe(trend)
    return df_trend

相关问题 更多 >

    热门问题