def函数问题

时间:2018-06-13 04:10:03

标签: python python-3.x pandas

我正在尝试创建指数移动平均线。但是,错误代码'Series'对象不可调用'出现。这是我的代码。有人可以帮忙吗?

def CalculateEMA(window):

    sma = Close.rolling(window, min_periods=window).mean()[:window]
    rest = Close[window:]
    EMA_window=pd.concat([sma, rest]).ewm(span=window, adjust=False).mean()

    return EMA_window()
CalculateEMA(60)

1 个答案:

答案 0 :(得分:0)

您正在调用从mean方法返回的pandas.Series。 这没有任何意义,因为Series没有实现__call__,它会因错误而失败。

你可能想要做的是删除parens并返回Series本身。

def CalculateEMA(window):

    sma = Close.rolling(window, min_periods=window).mean()[:window]
    rest = Close[window:]
    EMA_window=pd.concat([sma, rest]).ewm(span=window, adjust=False).mean()

    return EMA_window # <-- changed here
CalculateEMA(60)