ValueError: длина значений не совпадает с длиной индекса scsyy fsolve - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть датафрейм с колонками Date, cash, rate, name.Когда я пытаюсь запустить приведенный ниже код, я получаю сообщение об ошибке «ValueError: Длина значений не соответствует длине индекса».Также выдается предупреждение «RuntimeWarning: количество вызовов функции достигло maxfev = 400».Как я могу решить эту ошибку?

from scipy.optimize import fsolve
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 fsolve(lambda r: xnpv(r, values, dates), 3)   #error comes from here
def f(x):

    x["XNPV"] = xnpv(0.1, x["Cash"], x['Date'])
    x["XIRR"] = xirr( x["Cash"], x['Date'])
    return x

f2 = f1.groupby('RATE').apply(f)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...