簡體   English   中英

TypeError:“系列”對象不可調用-滾動窗口-Python

[英]TypeError: 'Series' object is not callable - Rolling window - 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中的列,如下所示:

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:“系列”對象不可調用

我猜這是因為一旦應用滾動窗口,列df['Close']就會變成數組:是嗎?

我該怎么做才能將滾動選擇的結果“轉換”為列?

是的,看起來hp_filter函數返回一個數組。 因此,您需要添加以下內容:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM