我正在努力将Excel财务模型替换成Python Pandas。我所说的财务模型是指预测一家企业的现金流、损益表和资产负债表,而不是对掉期/期权进行定价,或者使用股票价格数据,这些数据也被称为财务模型。很可能同样的概念和问题也适用于后一种类型,我只是不太了解它们,所以不能发表评论。在
到目前为止,我喜欢我看到的很多东西。我在Excel中使用的模型在页面顶部有一个共同的时间序列,定义了我们感兴趣的预测时间段。然后计算将页面作为一系列行向下运行。因此,每一行都是TimeSeries
对象,或者一个行集合成为DataFrame
。显然,您需要在这两个结构之间进行转置读取,但这是一个微不足道的转换。在
更好的是,每个Excel行都应该有一个通用的、单一的公式,并且只基于页面上的行。这使得它有助于向量运算,计算速度快,使用Pandas编写也很简单。在
我遇到的问题是当我试图建立一个螺旋式计算模型时。这些通常用于模拟会计余额,其中一个期间的期初余额是上一个期间的期末余额。不能使用.shift()
操作,因为给定期间的期末余额取决于同一期间的期初余额。最好用一个例子来说明:
Time 2013-04-01 2013-05-01 2013-06-01 2013-07-01 ...
Opening Balance 0 +3 -2 -10
[...]
Some Operations +3 -5 -8 +20
[...]
Closing Balance +3 -2 -10 +10
在伪代码中,我对如何计算这类事情的解决方案如下。这不是一个矢量化的解决方案,而且看起来速度很慢
^{pr2}$我可以看出,如果你只有一到两行操作,可能会有一些巧妙的方法来引导计算,我很高兴听到人们对这些技巧有什么建议。在
不过,我要做的一些螺旋钻有100个中间操作。在这种情况下,我最好的方法是什么?它是为了接受Python缓慢的性能吗?我应该迁移到赛顿吗?我还没有真正研究过它(所以可能有点离谱),但后一种方法的问题是,如果我要把100行代码移到C语言中,为什么首先要用Python呢,它感觉不像是简单的提升和转换?在
下面将进行就地更新,这将提高性能
相关问题 更多 >
编程相关推荐