我正在尝试了解如何在 python pandas 中解决这个问题。我的目标是用初始投资填写“RESULT”栏,并将利润应用到之前的结果之上。
所以如果我要使用 excel 电子表格,我会这样做:
- 询问初始投资是多少(在本例中为 350 美元)
- 将第一行计算为 profit/100*initial_investment + initial_investment
- 第二个和第四个将是相同的,除了“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()
将每一行乘以前面的行。然后,您可以将其乘以您的初始值。
关于python - 如何在 Pandas 中应用前一行结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40978466/