【问题标题】:Use list comprehension to calculate Net Present Value and Internal Rate of Return from DataFrame使用列表推导从 DataFrame 计算净现值和内部收益率
【发布时间】:2021-08-29 21:40:09
【问题描述】:

我下载了一个 CSV 文件,其数据框如下所示:

Year 1 Year 2 Year 3
-500 (Initial Investment) -500 (Initial Investment) -500 (Initial Investment)
1000 1000 1000
1000 1000 1000
1000 1000 1000

我想使用列表理解来创建一个新的数据框,该数据框将返回投资的净现值和内部收益率。这两个函数都可以从 Numpys 获得,并且只是“x”无风险利率和选择每列的值的结果。 np.npv(rf, values_year1)。理想情况下,我可以插入任意年数,它会给我一个数据框,其中包含每年的相应值,无论我插入 csv 文件多少年。我的新数据框如下所示:

Indicator Year 1 Year 2 Year 3
NPV 5000 USD 25000 USD 25000 USD
IRR 12% 25% 25%

我知道如何通过选择每一列并进行计算来手动执行此操作,但我真的很想学习如何使用列表理解。甚至可以通过列表理解来做到这一点吗?

【问题讨论】:

    标签: python pandas dataframe list-comprehension


    【解决方案1】:

    也许这样的事情会给你一些帮助:

    df = pd.DataFrame({"Year 1": [-500, 1000, 1000, 1000],"Year 2": [-500, 1000, 1000, 1000],"Year 3": [-500, 1000, 1000, 1000]})
    
    def sumarize_ser(col):
        s =  col.agg(sum)
        return s
    
    df2 = df.apply(sumarize_ser).to_frame()
    
    s_values = df2[0].sum()
    
    def calc_irr(line):
        return line/s_values*100
    
    df2["IRR"] = df2[0].apply(calc_irr)
    
    df2.T
    
    Out[]:
        Year 1  Year 2  Year 3
    0   2500.00 2500.00 2500.00
    IRR 33.33   33.33   33.33
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-18
      • 2013-11-28
      • 2012-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多