首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Python进行现金流预测

使用Python进行现金流预测

作者头像
fanjy
发布2022-04-13 13:35:24
发布2022-04-13 13:35:24
2.5K0
举报
文章被收录于专栏:完美Excel完美Excel

标签:Python与Excel,pandas

在金融行业工作的人每天都在处理现金流预测,但大多是用Excel。事实上,Excel确实易于使用且透明。可以在几分钟内构建一个现金流预测模型——编写几个公式,然后向下拖动复制。在本文中,我们将学习如何用Python构建一个简单的现金流预测模型,最终形成一个更复杂的模型。在这个模型中,我们用Python构建了一个抵押计算器。

用于现金流预测的Python工具

我们可以使用列表或pandas库来预测现金流。可能还有其他工具或库,有兴趣的可以进一步研究,但这里只使用列表和pandas。

示例

假设我们有一项资产可以产生30年的收入。第一年收入是100美元,在接下来的29年里每年增长6%(30年后就没有收入了)。计算该项资产的现值,每年贴现2%。

Excel模型

Excel用户可能已经知道如何(在Excel中)对此问题建模。多个输入值、公式和下拉列表,让我们看看下面的例子。这里只显示了10年,但实际的Excel文件显示了30年。

图1

使用列表建模

Python列表是一种有序的数据结构,这正是我们建模时间序列数据(即随时间变化的现金流)所需要的。需要说明的是,虽然我们可以使用列表来模拟现金流,但这样做并不是一个好主意,因为我们必须自己做很多低级数据操作。这里,我们只是演示这个想法,实际上我们应该使用pandas(或numpy)来模拟现金流预测。

income_first_yr = 100

growth_rt = 0.06

discount_rt = 0.02

其次,在列表中设置初始值,cashflow=[income_first_yr]。然后,再循环29次,计算随后每年的收入,并将其添加到列表中。我们有一个30年的现金流预测。

cashflow = [income_first_yr]

for i in range(29):

cashflow.append(cashflow[i] * (1 + growth_rt))

接下来,我们将在另一个列表中设置贴现现金率。

discount_vector = [1]

for i in range(29):

discount_vector.append(discount_vector[i] / (1 + discount_rt))

如果想直观地看到这两个向量,我们可以把它们并排放置,可以使用zip()函数来实现。它基本上在每个第i项上组合两个列表,并将它们作为元组返回,如下图所示。注意,这个zip()函数实际上创建了30个元组。

图2

我们知道,对于在zip()函数中创建的每个元组,第一个元素是收入,第二个元素是贴现率,因此我们可以将它们相乘以获得贴现现金流。让我们通过元组循环计算贴现现金流,并将其放入另一个列表中。这样,当前值就是结果列表的总和。

discounted_cashflow = []

for item in zip(cashflow,discount_vector):

discounted_cashflow.append(item[0] * item[1])

图3

使用pandas建模

使用pandas创建现金流预测比仅使用列表更容易,因为我们可以使用一些内置的方法。让我们从创建一个包含30行和2列的pandas数据框架开始——一列用于收入预测,另一列用于贴现率。

图4

一旦我们有了这两个向量,我们可以将它们相乘得到贴现现金流,然后求和sum()得到现值。

图5
图5
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档