【发布时间】:2022-01-14 17:28:46
【问题描述】:
我有这个抵押贷款计算器的代码。我想使用 Matplotlib 将此代码制作成绘图。我想要的值是“已付本金”和“已付利息”作为一条线,在 x 上显示美元,在 y 上显示年份/日期。我不知道如何开始,因为我有输入值,有人可以帮忙吗?
import pandas as pd
import numpy_financial as npf
from datetime import date
def fixed_rate_mortgage(interest: float, years: int, payments_year: int, mortgage: int, start_date: str):
rng = pd.date_range(start_date, periods=years * payments_year, freq='MS')
rng.name = "Payment Date"
df = pd.DataFrame(index=rng, columns=['Payment', 'Principal Paid', 'Interest Paid', 'Ending Balance'], dtype='float')
df.reset_index(inplace=True)
df.index += 1
df.index.name = "Period"
df["Payment"] = -1 * npf.pmt(interest/12, years*payments_year,mortgage)
df["Interest Paid"] = -1 * npf.ipmt(interest/payments_year, df.index, years*payments_year,mortgage)
df["Principal Paid"] = -1 * npf.ppmt(interest/payments_year, df.index, years*payments_year,mortgage)
df["Ending Balance"] = 0
df.loc[1, "Ending Balance"] = mortgage - df.loc[1, "Principal Paid"]
df = df.round(2)
df['Ending Balance'] = mortgage - df['Principal Paid'].cumsum()
df[df['Ending Balance'] < 0] = 0
return df
payments_year = 12
years = input("Write how many years \n")
years = float(years)
interest = input("Write the interest \n")
interest = float(interest)
loan = input("Write the amount you want to loan \n")
loan = float(loan)
start_date = input("What is the starte date, put it in YYYY-MM-DD format")
year, month, day = map(int, start_date.split("-"))
start_date = date(year, month, day)
fixed_rate_mortgage(interest, years, payments_year, loan, start_date)
【问题讨论】:
-
什么是典型的输入值?对于我的输入 10、0.1、10000、2020-01-01,我得到了荒谬的“已支付本金”值
-
我的代码是另一种语言的原始代码,所以我只是快速编辑成英文。这一定是为什么
标签: python pandas dataframe matplotlib