【问题标题】:Python function to iterate over a column and calculate the forumlaPython函数迭代列并计算公式
【发布时间】:2019-11-27 16:22:26
【问题描述】:

我有一个这样的数据集:

YEAR  MONTH VALUE 
2018   3    59.507
2018   3    26.03
2018   5    6.489
2018   2    -3.181

我正在尝试执行类似的计算 ((VALUE1 + 1) * (VALUE2 + 1) * (VALUE3+1).. * (VALUEn +1)-1) 超过 VALUE 列

最好的方法是什么?

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    用途:

    df['VALUE'].add(1).prod()-1
    #-26714.522733572892
    

    如果您希望累积产品创建一个新列,请使用Series.cumprod

    df['new_column']=df['VALUE'].add(1).cumprod().sub(1)
    print(df)
    
       YEAR  MONTH   VALUE    new_column
    0  2018      3  59.507     59.507000
    1  2018      3  26.030   1634.504210
    2  2018      5   6.489  12247.291029
    3  2018      2  -3.181 -26714.522734
    

    【讨论】:

      【解决方案2】:

      我想你在追求...

      cum_prod = (1 + df['VALUE'].cumprod()) - 1
      

      【讨论】:

        【解决方案3】:

        首先你应该了解你正在处理的对象,它们有什么属性和方法。这是一个数据框,值列是一个系列。

        这里是文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.html

        【讨论】:

          猜你喜欢
          • 2021-12-17
          • 2014-08-18
          • 2020-11-16
          • 2022-01-21
          • 1970-01-01
          • 2021-12-10
          • 1970-01-01
          • 2013-10-11
          • 1970-01-01
          相关资源
          最近更新 更多