我有一个不可预测的现金流和不可预测的周期长度的数据框架,我需要生成一个向后看的内部收益率。

在Excel中使用解算器来完成它非常简单,想知道是否有一种好的方法可以在Python中实现它。(我想我可以利用openpyxl让solver在python的excel中工作,但这感觉不必要的麻烦)。

问题很简单:NPV of Cash Flow = ((cash_flow)/(1+IRR)^years_ago)

目标:求和(NPV)=0的内部收益率

我的数据帧如下所示:cash_flow |years_ago

-----------------------

-3.60837e+06 |4.09167

31462 |4.09167

1.05956e+06 |3.63333

-1.32718e+06 |3.28056

-4.46554e+06 |3.03889

似乎其他的IRR计算器(如numpy.IRR)都假设严格的周期截止(每3个月、1年等),这是行不通的。另一个选项似乎是迭代路径,我不断地猜测、检查和迭代,但这感觉是解决这个问题的错误方法。理想情况下,我正在寻找能做到这一点的方法:irr = calc_irr((cash_flow1,years_ago1),(cash_flow2,years_ago2),etc)

编辑:这是我处理问题的代码。我有一个事务列表,我选择按id创建临时表for id in df_tran.id.unique():

temp_df = df_tran[df_tran.id == id]

cash_flow = temp_df.cash_flows.values

years = temp_df.years.values

print(id, cash_flow)

print(years)

#irr_calc = irr(cfs=cash_flow, yrs=years,x0=0.100000)

#print(sid, irr_calc)

其中df_-tran(它是temp_-df的基础)看起来像:cash_flow |years |id

0 -3.60837e+06 4.09167 978237

1 31462 4.09167 978237

4 1.05956e+06 3.63333 978237

6 -1.32718e+06 3.28056 978237

8 -4.46554e+06 3.03889 978237

10 -3.16163e+06 2.81944 978237

12 -5.07288e+06 2.58889 978237

14 268833 2.46667 978237

17 -4.74703e+06 1.79167 978237

20 -964987 1.40556 978237

22 -142920 1.12222 978237

24 163894 0.947222 978237

26 -2.2064e+06 0.655556 978237

27 1.23804e+06 0.566667 978237

29 180655 0.430556 978237

30 -85297 0.336111 978237

34 -2.3529e+07 0.758333 1329483

36 21935 0.636111 1329483

38 -3.55067e+06 0.366667 1329483

41 -4e+06 4.14167 1365051

temp_df看起来与df_tran相同,只是它只保存单个id的事务

python 内部收益率_用Python计算可变现金流内部收益率(pandas)相关推荐

  1. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  2. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  3. python 标准差_标准差python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 方差是每个值与均值的差值的平方的平均值,标准差是方差的平方根(这是有用的,因为取 ...

  4. python范例_最佳Python代码范例

    python范例 Python is a general purpose programming language which is dynamically typed, interpreted, a ...

  5. python重构_重构Python应用程序以简化操作

    python重构 Do you want simpler Python code? You always start a project with the best intentions, a cle ...

  6. python 字符识别_使用python进行光学字符识别入门

    python 字符识别 语言模型设计 (Language Model Designing) Optical Character Recognition is the conversion of 2-D ...

  7. 类的继承python事例_【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸...

    作者:白宁超 2016年10月10日22:36:57 摘要:继一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc入门资料包含了基本要点.本文是对文档常用核心要点进行梳理,简 ...

  8. 【100天精通python】Day1:python入门_初识python,搭建python环境,运行第一个python小程序

    目录 专栏导读 1 初始python python 概述 python的应用领域 应用python的公司 2 搭建python 开发环境 2.1 安装python(以windows 系统为例)(1)下 ...

  9. excel python插件_利用 Python 插件 xlwings 读写 Excel

    Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...

最新文章

  1. 为什么大公司一定要使用微服务?
  2. 【Numpy学习记录】np.transpose讲解
  3. AT3955-[AGC023D]Go Home【结论,递归】
  4. 关系与普通表的术语比较
  5. C语言课后习题(64)
  6. @程序员,你处在食物链哪级?有人跑车游轮到处玩,有人被房价羞辱,被平庸折磨...
  7. 矩阵维度必须一致是什么意思_糖化肌肤是什么意思?抗糖养肤你必须知道这些...
  8. java删除目录下符合条件的文件
  9. linux显示指定目录容量,linux 查看指定目录的容量大小,系统目录容量大小
  10. 数据库课程设计专题-数据库课程设计大作业作业列表【建议在校生收藏】
  11. SaaSBase:什么是零一裂变SCRM?
  12. Linux排查CPU使用率100%
  13. 向量的二范数平方求导
  14. linux nginx 443端口被占用,Nginx拒绝监听端口443(示例代码)
  15. 软考倒计时26天,最后冲刺阶段
  16. 定制ROM不好用?Android原生系统用户暴涨2.5倍
  17. 罗永浩刚直播完,就被罚款拘留?老罗是这么回应的...
  18. ZUCC_大数据计算技术_实验三 HDFS编程实践
  19. 汇编文件大写.S后缀和小写.s后缀的区别
  20. GWO(灰狼优化)算法MATLAB源码逐行中文注解()

热门文章

  1. 去掉Holo主题下Dialog的蓝色线
  2. Java JVM 动态方法调用之方法句柄 MethodHandle
  3. Python中pass的作用
  4. c语言画笔的使用方法,新手必看:Photoshop笔刷画笔工具基本使用教程
  5. 限制Teams会议中的聊天
  6. zke电池测试 软件,EBC-X系列电池测试仪使用说明.pdf
  7. 直立车想节能——2020全国大学生智能车车竞赛经验记录之梦的开始
  8. macOS 上如何禁用 Adob​​e 后台进程,但保存 CPU、内存和网络活动呢
  9. 知乎上这个程序员火了,竟是因为给老板修了一 次U盘...
  10. colorkey唇釉是否安全_colorkey唇釉成分安全吗