У меня есть dataframe со столбцом Date, Cash, Name, KEY. Я пытаюсь найти xirr, сгруппировав ключ. Но когда я запускаю свой код, я получаю сообщение об ошибке «TypeError: объект 'float' не вызывается»
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
f1 [l] - объект. у него есть дата (временная метка) и деньги (с плавающей запятой)
Вход в apply должен быть функцией. Может попробовать apply(xirr)?
Нет, это не работает, так как мне нужно передать аргумент, то есть f1 [l] в xirr. если я его не передам, это дает мне ошибку ключа: 0





Вход в
applyдолжен быть функцией. Развеxirr(f1['1'])не поплавок?