python - 如何在 Pandas 中应用前一行结果

标签 python excel pandas

我正在尝试了解如何在 python pandas 中解决这个问题。我的目标是用初始投资填写“RESULT”栏,并将利润应用到之前的结果之上。

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

  1. 询问初始投资是多少(在本例中为 350 美元)
  2. 将第一行计算为 profit/100*initial_investment + initial_investment
  3. 第二个和第四个将是相同的,除了“initial_investment”在上面的原始中。

enter image description here

我最初的 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/

相关文章:

python - 在 Python 中运行长进程时为用户打印一条消息

python - 套接字.gaierror : [Errno -2] Name or service not known with Python3

python - 将零分配给列表中指定索引处的张量

sql-server - 在SSIS脚本任务中激活特定的Excel工作表

.net - DDE 还重要吗?有哪些替代方案?

python - Pandas 操纵工作日日期范围的频率

python - pandas - 获取未排序的分层列

python - 如何提高 openpyxl 在单元格中写入值?

excel - Selection.End(xlToRight) 不起作用

python - 替换python pandas数据框中的某个值