如何解决有没有更好的方法在Python中创建贷款摊销表?
我正在尝试创建贷款的简单摊销。由于某种原因,我的代码会在一段时间后停止工作。从2006-04-30开始,我的代码无法识别期初余额,也没有计算此余额的利息,也没有计算期末余额。任何建议都将不胜感激。
import numpy as np
import pandas as pd
from datetime import datetime
data = pd.DataFrame({'date': pd.date_range("2006-01-01","2011-12-31",freq='M')})
data['date'] = pd.to_datetime(data['date'])
data.set_index(data['date'],inplace=True)
orig_balance = 1000000
interest_rate = .06
day_count = 30/360
data['monthly_principal_pmt'] = 10000
date_cut_off = '2006-01-31'
data['beginning_balance'] = 0
for row in data:
data.at[date_cut_off,'beginning_balance'] = orig_balance
data['ending_balance'] = np.maximum(data['beginning_balance'] - data['monthly_principal_pmt'],0)
data['monthly_interest_pmt'] = data['beginning_balance'] * day_count * interest_rate
data['beginning_balance'] = data['ending_balance'].shift()
解决方法
谢谢您的帮助!现在可以正常工作:
import numpy as np
import pandas as pd
from datetime import datetime
data = pd.DataFrame({'date': pd.date_range("2006-01-01","2011-12-31",freq='M')})
data['date'] = pd.to_datetime(data['date'])
data.set_index(data['date'],inplace=True)
orig_balance = 1000000
interest_rate = .06
day_count = 30/360
data['monthly_principal_pmt'] = 10000
date_cut_off = '2006-01-31'
data['beginning_balance'] = 0
for yr in range(1,72):
data.at[date_cut_off,'beginning_balance'] = orig_balance
data['ending_balance'] = np.maximum(data['beginning_balance'] - data['monthly_principal_pmt'],0)
#data['ending_balance'] = data['beginning_balance'] - data['monthly_principal_pmt']
data['monthly_interest_pmt'] = data['beginning_balance'] * day_count * interest_rate
data['beginning_balance'] = data['ending_balance'].shift()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。