OverflowError: (34, 'Результат слишком велик') в расчете xirr - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь вычислить значение XIRR.Фрейм данных 'f' содержит столбцы дата, наличные деньги, ставка, имя.Но я получаю сообщение об ошибке «OverflowError: (34,« Результат слишком велик »).« Пожалуйста, помогите мне исправить код, чтобы исправить эту ошибку.

def xnpv(rate, values, dates):

    if rate <= -1.0:
        return float('inf')
    d0 = dates.min()   # or min(dates)
    return sum([ vi / (1.0 + rate)**((di - d0).days / 365.0) for vi, di in zip(values, dates)])
def xirr(values, dates): 
    try:
        return scipy.optimize.newton(lambda r: xnpv(r, values, dates), 0.0)
    except RuntimeError:    # Failed to converge?
        return scipy.optimize.brentq(lambda r: xnpv(r, values, dates), -1.0, 1e10)  
def fun(x):
    x["XNPV"] = xnpv(0.1, x["Cash"], x['Due Date'])
    x["XIRR"] = xirr( x["Cash"], x['Due Date'])
    return x
f2 = f.groupby('Rate').apply(fun)
...