я хочу рассчитать дни и плавать в моей функции
так что это мой фрейм данных
In[1]
df = {'Loan Nego': [2019-03-01, 2019-03-01], 'New Maturity': [2019-03-11, 2019-03-29],'Loan Amount in OCUR': [1000, 2000]}
Out[1]
Loan Nego New Maturity Loan Amount in OCUR
2019-03-01 2019-03-11 1000
2019-03-01 2019-03-29 2000
In[2]
df.dtypes
Out[2]
New Maturity datetime64[ns]
Loan Nego datetime64[ns]
Loan Amount in OCUR float64
и я хочу ввести этот фрейм данных в свою функцию
# Equation CLOF
def clof(loan,maturity, amount):
days = (maturity-loan).days
return ((amount * days)/ 360) * (2.36/100)
я пробовал, но вот такая тревога
AttributeError: объект «Серия» не имеет атрибута «дни»
df["New Interest"] = clof(df["Loan Nego"],df["New Maturity"],df["Loan Amount in OCUR"])
это не работает,
AttributeError: объект «Серия» не имеет атрибута «дни»
мое ожидание
Loan Nego New Maturity Loan Amount in OCUR New Interest
2019-03-01 2019-03-11 1000 0.65
2019-03-01 2019-03-29 2000 3.671
Есть решение?
Используйте Series.dt.days
, потому что в вашей функции вы работаете с Series
, а не со скалярами:
def clof(loan,maturity, amount):
days = (maturity-loan).dt.days
return ((amount * days)/ 360) * (2.36/100)
df["New Interest"] = clof(df["Loan Nego"],df["New Maturity"],df["Loan Amount in OCUR"])
print (df)
Loan Nego New Maturity Loan Amount in OCUR New Interest
0 2019-03-01 2019-03-11 1000 0.655556
1 2019-03-01 2019-03-29 2000 3.671111