我在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']
就变成了一个数组:对吗?在
如何将滚动选择的结果“转换”为列?在
是的,它看起来像hp_filter函数返回一个数组。因此,您需要添加以下内容:
相关问题 更多 >
编程相关推荐