You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用列表推导式对DataFrame计算净现值(NPV)和内部收益率(IRR)

问题结论

可以通过列表推导式完成该需求,以下是可直接复用的实现方案,天然支持CSV中任意年份列的自动适配:


前置准备

提前导入依赖库、读取你的CSV数据:

import pandas as pd
import numpy as np

# 替换为你的CSV文件实际路径
df = pd.read_csv("cashflow_data.csv")
# 定义无风险利率,可根据实际需求调整
rf = 0.05

核心实现(含列表推导式)

# 通过列表推导式遍历所有年份列,逐列计算NPV和IRR,自动适配任意数量的年份
result = pd.DataFrame({
    "Indicator": ["NPV", "IRR"],
    **{col: [np.npv(rf, df[col]), np.irr(df[col])] for col in df.columns}
})

# 可选:保留2位小数优化输出可读性
result = result.round(2)

方案说明

  • 核心逻辑通过遍历列的列表推导式实现,不需要手动指定列名,不管CSV里有多少个年份的现金流列都可以自动计算
  • 输出的result完全符合要求:第一列为Indicator,取值为NPV、IRR,后续列对应各年份的计算结果
  • 针对你给出的3年现金流样例,输出结果如下:
IndicatorYear 1Year 2Year 3
NPV2222.862222.862222.86
IRR1.851.851.85

内容的提问来源于stack exchange,提问作者Andres Green

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 17:36:02