告诉你怎么用Python实现年金现值计算

每天财务转一转

告诉你怎么用Python实现年金现值计算

内容导入:

大家好,这里是每天财务转一转。Python的应用领域现在非常的广泛,随着会计与财务智能化的步伐加快,Python数据分析在财务分析中会占有一席之地。

形如SPSS与SAS这样的可视化数据分析,是没有进行财务专业方向的模块的,excel中虽然有财务函数,但是使用不太灵活,也不能用于系统开发。如果你是R语言的使用者,可以忽略此类型内容,这方面,R语言与Python语言功能大致相同。

小神马目前准备了一系列财务运算的内容,给大家做分享。今天准备给大家介绍普通与预付年金现值的概念与计算。

概念介绍

年金现值就是在已知等额收付款金额未来本利、利率和计息期数时,考虑货币时间价值,计算出的这些收付款到现在的等价票面金额。

年金现值也可分为:普通年金现值、先付年金现值、递延年金现值、永续年金现值。

年金是指一定期间内每期等额收付的款项。因此,可以说年金是复利的产物,是复利的一种特殊形式。

普通年金是指每期期末收付款项的年金,例如采用直线法计提的单项固定资产的折旧(折旧总额会随着固定资产数量的变化而变化,不是年金,但就单项固定资产而言,其使用期内按直线法计提的折旧额是一定的)、一定期间的租金(租金不变期间)、每年员工的社会保险金(按月计算,每年7月1日到次年6月30日不变)、一定期间的贷款利息(即银行存贷款利率不变且存贷金额不变期间,如贷款金额在银行贷款利率不变期间有变化可以视为多笔年金)等。

先付年金是指每期期初收付款项的年金,例如先付钱后用餐的餐厅,每一道菜(包括米饭、面、饺子和馄饨等)分别出来之后都是先付年金。

普通年金现值

普通年金现值是以计算期期末为基准,在给定投资报酬率下按照货币时间价值计算出的未来一段期间内每年或每月收取或给付的年金现金流的折现值之和。类似普通年金终值,计算普通年金现值时,同样要考虑到现金流是期初年金还是期末年金。

年金现值系数公式:PVA/A =1/i-1/[i (1+i)^n]。

其中i表示报酬率,n表示期数,PVA表示现值,A表示年金。

举例:比如你在银行里面每年年末存入1200元,连续5年,年利率是10%的话,你这5年所存入资金的现值

=1200/(1+10%)+1200/(1+10%)2+1200/(1+10%)3+1200/(1+10%)4+1200/(1+10%)5= 1200*[1-(1+10%)-5]/10%=1200*3.7908=4548.96

先付年金现值

先付年金现值:是其最后一期期末时的本利和,相当于各期期初等额收付款项的复利现值之和。

n期先付年金与n期普通年金的收付款次数相同,但由于付款时间不同,n期先付年金现值比n期普通年金的现值多计算一期利息。因此在n期普通年金现值的基础上乘以(1+i)而将分母加1就得出n期先付年金的现值了,公式为:

记作P(A,i,n)=A·[(P/A,i,n-1)+1]

例如:某公司租用某设备,每年年初需要支付租金100元,年利率为10%,问5年内应支付的租金总额的现值是多少?

实现过程:

1、自定义计算一系列现金流现值(如年金)的函数def pv_f(c,r,n,when=1):
    '''
    c
代表每期现金流,可以每期不一样,如c=[100,90,80,120]
    r
贴现率,也可以每期不一样,如相应的,r=[2%,3%,2%,4%]
    n
为期数
    when=1
表示期末计数,默认,即普通年金    when=0表示期初计数,即预付年金    '''
   
import numpy as np  #导入numpy
   
c=np.array(c)
    r=np.array(r)
    if when==1:
        n=np.arange(1,n+1)
    else:
        n=np.arange(0,n)
    pv=c/(1+r)**n
    return pv.sum()

2、应用实例1:有个五年的普通年金年金,每年可获得20000元,假设贴现率为5%,现值是多少?c=20000
r=0.05
n=5

3、调用前文定义的函数pv_f(c,r,n,when=1)
pv1=pv_f(c,r,n,when=1)
print('普通年金现值(年末):%.2f'% pv1)
#如果是预付年金,则when=0
pv2=pv_f(c,r,n,when=0)
print('预付年金现值(年初):%.2f' % pv2)

4、调用numpy内部函数年金计算包

import numpy as np
print('numpy自带公式计算(年末):{:.2f}'.format(np.pv(r,5,-c),when=0))
print('numpy自带公式计算(年初):{:.2f}'.format(np.pv(r,5,-c,when=1)))

5、输出结果

普通年金现值(年末):86589.53

预付年金现值(年初):90919.01

numpy自带公式计算(年末):86589.53

numpy自带公式计算(年初):90919.01

各位小伙伴,今天就分享到这里,本次介绍了普通年金与预付的概念与计算方式。我们可以通过改变资金数量、利息与年限,实现所有普通年金与预付年金的计算,这就是Python的魅力。

(0)

相关推荐

  • 练习题096:用FV、PV求现值、终值(制作复利系数表)

    函数公式.职场模板.财务应用.分析图表.练习题.软件工具.表格合并.图表及可视化.Office 365.Power Query.表格美化.符号作用.条件格式.学会骗.一本不正经.避坑指南.数据整理.筛 ...

  • 【Excel函数教程】财务达人必须了解的13个Excel函数(上篇)

    公众号回复2016   下载office2016 Excel是一款非常强大的数据处理软件,其在数据处理.计算机功能方面都发挥着重大作用,既包含简单的四则运算,又包含复杂的财务运算.统计分析等,且这些功 ...

  • 泊松分布以及在什么情况下使用它

    一个故事:你已经做了10年的自由职业者了.到目前为止,你的平均年收入约为8万美元.今年,你觉得自己陷入了困境,决定要达到6位数.要做到这一点,你需要先计算这一令人兴奋的成就发生的概率,但你不知道怎么做 ...

  • 我的读书笔记:期末年金现值计算

    先看期末年金的特征:一.多重现金流的期数是确定的.二.每期的现金流数量相同.三.发生在每期的期末.依据这些特征,期末年金的定义如下:期末年金就是发生在期末的一系列等额现金流,也称为普通年金. 期初年金 ...

  • 究竟什么是年金现值?

    年金是指等额.定期的系列收支款项.如折旧.利息.租金.保险费等通常表现为年金形式. 年金有普通年金.预付年金.递延年金和永续年金. 普通年金又称后付年金,是指各期期末收付的年金. 普通年金现值,是指为 ...

  • 多重现金流和多重现金流的现值计算

    在现金流:涉及三个要素,(一)大小,指货币金额或叫数额的大小:(二)方向,指是收到货币还是支出货币,货币是进还是出:(三)时期,指收到或支出货币的时间区间.发生在哪一个时间段. 现金流的定义:指在某一 ...

  • PYTHON贝叶斯推断计算:用BETA先验分布推断概率和可视化案例

    原文链接:http://tecdat.cn/?p=24084 在这篇文章中,我将扩展从数据推断概率的示例,考虑 0 和 1之间的所有(连续)值,而不是考虑一组离散的候选概率.这意味着我们的先验(和后验 ...

  • 定投指数到底能不能赚钱?Python 来告诉你答案

    来源:Python 技术「ID: pythonall」 受疫情严重影响,全球股市都在不断下跌,就连一贯成熟.增长稳定的美股也在接二连三的不断向下熔断,仅三月份已经熔断五次了.要知道美股历史上的第一次熔 ...

  • 想知道未来孩子长相?Python人脸融合告诉你

    来源:Python 技术「ID: pythonall」 和换脸算法的简单粗暴相比,人脸融合算法就要弹性的多.顾名思义,人脸融合是对两张人脸进行融合处理,生成的人脸同时具备两张人脸的外貌特征.人脸融合有 ...

  • Python 告诉你疫情扩散有多可怕

    来源:Python 技术「ID: pythonall」 今年(2020年)是注定要铭记史册的一年,从年初开始新冠疫情,席卷了全球,中国人民众志成城,为战胜疫情做出了巨大牺牲.最近北京疫情形式又变得严峻 ...

  • 实战!Python 偷偷告诉你小姐姐的听歌喜好

    来源:Python 技术「ID: pythonall」 作为网易云村的深度用户,网易云音乐应该是我除了微信外打开时间最长的 App 了.并不是应为网易云上面的歌曲多,而是因为那些走心的评论.边听歌边刷 ...

  • 自学 Python 到什么程度能找到工作,1300+ 条招聘信息告诉你答案

    来源:Python 技术「ID: pythonall」 随着移动互联网的发展以及机器学习等热门领域带给人们的冲击,让越来越多的人知道并开始学习 Python.无论你是是科班出身还是非科班转行,Pyth ...