如何将前一行结果应用于pandas

我想了解如何在pythonpandas中解决这个问题。 我的目标是在初始投资中填写“RESULT”栏,并在前面的结果上面应用利润。

所以,如果我会使用Excel电子表格,我会这样做:

  1. 问什么是最初的投资(在这个例子中是$ 350)
  2. 计算第一行为利润/ 100 * initial_investment + initial_investment
  3. 除了“initial_investment”处于上述原始状态之外,第二个和第四个将是相同的。

在这里输入图像说明

我最初的Python代码是这样的

import pandas as pd df = pd.DataFrame({"DATE":[2009,2010,2011,2012,2013,2014,2015,2016],"PROFIT":[10,4,5,7,-10,5,-5,3],"RESULT":[350,350,350,350,350,350,350,350]}) print df 

您可以使用累积产品函数cumprod()

 df['RESULT'] = ((df.PROFIT + 100) / 100.).cumprod() * 350 

首先你把df.PROFIT转换成以前值的一部分。 然后cumprod()将每行乘以前面的行。 然后你可以把它乘以你的初始值。