amortization/loan table 不使用 pandas

amortization/loan table without using pandas

在不使用 pandas 的情况下创建每月摊销 table 的最佳方法是什么?假设我获得了贷款金额、年利率和期限(年)。如何制作一个 table 给出期间、期初余额、本金、利息,然后是期末余额?然后末尾的金额等于0。 例如,如果我有 150,000 笔贷款、10% 的利率和 25 年(300 个月)的期限,我不想在此使用用户输入

格式化成这样(我知道输出会很长):

month      begin bal.    interest     principal    end bal.
1          xxxx          xxxx         xxxx         xxxx
.
.

我可以附上我已经开始的内容,但我知道这很糟糕,哈哈,我在 Python 中使用 formulas/tables 很糟糕,它只是不适合我,所以我很挣扎。任何东西都会有帮助,谢谢!

#p = r(pv)/(1-(1+r)**-n)
loan = 150000  
rate = 10/100 #10%
term = 25 #25 years

for i in range(loanTerm):
    print("month.  begin bal.   interest.   principal.  ending bal")
    beginB = loanAmt
    pv = loan
    r = rate/100
    n = term*12
    p = r(pv)/(1-(1+r)**-n)

^ 我知道这是一个非常可悲的尝试,有很多错误我很尴尬大声笑只是不知道从哪里开始。如果有任何需要澄清的地方,请告诉我!

嗯,首先,您在循环之前计算所有常量。

#p = r(pv)/(1-(1+r)**-n)
loan = 150000  
rate = 10/100 #10%
term = 25

mo_rate = rate/12
mo_term = term*12
factor = (1 + mo_rate) ** mo_term
pmt = round(loan * (mo_rate * factor) / (factor - 1), 2)
print( "Payments are", pmt, "per month")

balance = loan
print( "month\tbal\tint\tprin\tending" )
for i in range(mo_term):
    interest = balance * mo_rate
    ending = balance + interest - pmt
    print( f"{i}\t{balance:.2f}\t{interest:.2f}\t{pmt-interest:.2f}\t{ending:.2f}" )
    balance = ending