#python #pandas #dataframe #numpy
#питон #панды #фрейм данных #тупица
Вопрос:
У меня есть этот ипотечный калькулятор с фиксированным рейтингом, я хочу, чтобы он выглядел более удовлетворительно, добавив последнюю строку, в которой указана сумма кредита. Включая то, что я хочу получить общую сумму кредита, это означает
loan df["Principal Paid"].sum()
Но я так и не понял, как это сделать. У меня был почти правильный код, но это удалило столбец даты.
import pandas as pd import numpy_financial as npf from datetime import date interest = 0.025 years = 10 payments_year = 12 mortgage = 1500000 start_date = (date(2021, 1, 1)) 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(0) df['Ending Balance'] = mortgage - df['Principal Paid'].cumsum() df[df['Ending Balance'] lt; 0] == 0 return df
interest = 0.025 years = 10 payments_year = 12 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)
Какие-нибудь советы?
Комментарии:
1. Вы можете добавить новую строку, используя df.iloc[-1]=…, но я думаю, что вы пытаетесь использовать фрейм данных в качестве электронной таблицы Excel, и это не должно быть так. Вам лучше сохранить его в переменной.