У меня есть функция Ходрика-Прескотта (HP), определенная в Python следующим образом:
import statsmodels.api as sm
def func_HP(close, params):
cycle,trend = sm.tsa.filters.hpfilter(close,params)
return trend
Если я применю эту функцию к столбцу, представленному на частоте данных, как это:
df['Trend'] = func_HP(df['Close'],18000)
все работает нормально, и я получаю значение тренда для всего "статического" столбца.
Я хочу применить функцию HP к скользящему окну столбца df ['Close']. Длина окна составляет 240. Таким образом, фильтр HP будет применен к скользящим 240 записям.
Я использовал этот код:
x = df.rolling(window=240, min_periods=240, on='Close').apply(func_HP(df['Close'],18000))
но я получаю ошибку:
TypeError: объект 'Series' не вызывается
Полагаю, это потому, что когда вы применяете скользящее окно, столбец df['Close']
становится массивом: это верно?
А что я могу сделать, чтобы "преобразовать" результат скользящего выделения в столбец?