xirr: TypeError: объект 'float' не вызывается - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть датафрейм со столбцами Дата, Наличные, Имя, КЛЮЧ.Я пытаюсь найти XIRR, группируя ключ.Но когда я запускаю свой код, появляется сообщение об ошибке «TypeError: объект с плавающей точкой не вызывается»

f1['l'] = list(zip(f1["Date"], f1["Cash"]))
[![image][1]][1]

def xirr(transactions):
    years = [(ta[0] - transactions[0][0]).days / 365.0 for ta in transactions]
    residual = 1
    step = 0.05
    guess = 0.05
    epsilon = 0.0001
    limit = 10000
    while abs(residual) > epsilon and limit > 0:
        limit -= 1
        residual = 0.0
        for i, ta in enumerate(transactions):
            residual += ta[1] / pow(guess, years[i])
        if abs(residual) > epsilon:
            if residual > 0:
                guess += step
            else:
                guess -= step
                step /= 2.0
    return guess-1

print(xirr(f1['l'])) #till here it runs  
f2 = f1.groupby('KEY').apply(xirr(f1['l']))  # this line is giving error
...