1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 1.1根据应收账款明细计算下个付息日的应计利息

1.1根据应收账款明细计算下个付息日的应计利息

时间:2021-08-15 18:27:24

相关推荐

1.1根据应收账款明细计算下个付息日的应计利息

一、引入第三方库

import numpy as npimport pandas as pdfrom datetime import datetimefrom datetime import timedelta

二、将原始数据改变为 xlsx格式。(如何自动读写WPS,有待查询)

2.1 导入初始数据到raw_data,

raw_data = pd.read_excel("C:\\123\\cashflow.xlsx")

2.2 整理字段信息 colunes information: 金融工具名称 起息日 到期日 付息周期 付息方式 计息方式 首个付息日 上个付息日 下一个收息日 面额 票面利率(%)

查看字段项下的数据类型

raw_data[‘金融工具名称’] 调取某列

data1.dtypes ### 查看column项下数据类型

三、 数据清理————————重要

数据转换

把计息方式,换成float型数据,按每X月计息一次来算,利随本清记为0;如有字符型数据换成 float;保存到data1

data1 = raw_data.replace(['A/360','A/365F','每月一次','每季一次','半年一次','每年一次','利随本清'],[360,365,1,3,6,12,0]) ### 字符型转为 int data1["起息日"]=[datetime.strptime(x,'%Y-%m-%d') for x in data1["起息日"]]data1["到期日"]=[datetime.strptime(x,'%Y-%m-%d') for x in data1["到期日"]]data1["首个付息日"]=[datetime.strptime(x,'%Y-%m-%d') for x in data1["首个付息日"]]data1["上个付息日"]=[datetime.strptime(x,'%Y-%m-%d') for x in data1["上个付息日"]]data1["下一个收息日"]=[datetime.strptime(x,'%Y-%m-%d') for x in data1["下一个收息日"]]#### 字符型转为日期型 # pd.to_datetime(raw_data["起息日"]) 也可转为日期型数据data1["票面利率(%)"]= data1["票面利率(%)"].astype('float64')data1["面额"]= data1["面额"].astype('float64') ####字符型转为float

dfname._stat_axis.values.tolist() # 输出行名称 dfname.columns.values.tolist() # 输出列名称

len(list(data1)) 或 data1.shape[1] 返回行数;

data1.shape[1] 返回列数#for i in range((len(list(data1)))

四、新增一列payable_interest ,记载下个付息日应收利息;first run error,due to strings,data clean 没考虑新投放

payable_days=data1['下一个收息日']-data1['上个付息日']payable_interest=data1["面额"]*data1['票面利率(%)']*payable_days[1].days/data1["计息方式"]data1.insert(data1.shape[1],"应计利息",payable_interest)

五。把 payable_interest 加到data1 的最后一列

data1=data1.append(payable_interest,ignore_index=False) why not

六、 输出到文件夹

data1.to_excel('C:\\123\\应计利息.xlsx')

最后代码如下

import numpy as npimport pandas as pdfrom datetime import datetimefrom datetime import timedelta### 将WPS格式转为XLSX格式raw_data = pd.read_excel("C:\\123\\固定产品核算余额.xlsx")### 查看columns信息,处理数据data1 = raw_data.replace(['A/360','A/365F','A/365','A/A','每月一次','每季一次','半年一次','每年一次','利随本清'],[360,365,365,365,1,3,6,12,0])### data1.dtypes 查看数据类型,首个付息日为 objectdata1["起息日"]=pd.to_datetime(data1["起息日"])data1["到期日"]=pd.to_datetime(data1["到期日"])data1["首个付息日"]=pd.to_datetime(data1["首个付息日"]) data1["上个付息日"]=pd.to_datetime(data1["上个付息日"]) data1["下一个收息日"]=pd.to_datetime(data1["下一个收息日"])data1["票面利率(%)"]= data1["票面利率(%)"].astype('float64')data1["面额"]= data1["面额"].astype('float64')payable_days=data1['下一个收息日']-data1['上个付息日']payable_interest=data1["面额"]*data1['票面利率(%)']*payable_days[1].days/data1["计息方式"]data1.insert(data1.shape[1],"应计利息-2",payable_interest)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。