【发布时间】:2021-06-06 19:46:12
【问题描述】:
每次满足另一列中的条件时,我都会尝试将 cumsum 重置为零。这是我的数据框的样子:
ticker cashflow op shares profit
CPFE3.SA -220.06 Buy 8 0
CPFE3.SA 249.93 Sell 0 29.87
CPFE3.SA -90.03 Buy 3 0
CPFE3.SA -575.87 Buy 22 0
CPFE3.SA -92.12 Buy 25 0
CPFE3.SA 763.52 Sell 0 35.37
DIS -921.46 Buy 1 0
我正在使用以下内容来创建利润列:
df['profit'] = df.groupby(df.ticker)['cashflow'].cumsum().where(df.op=='Sell',0)
Shares 是我在买入/卖出后拥有的股票数量。利润是我想要做出一些不同的东西。每次在 share 列中遇到 0 时,如何重置 cumsum?我尝试了一些东西,但我很烂。
我正在寻找的结果如下所示:
ticker cashflow op shares profit
CPFE3.SA -220.06 Buy 8 0
CPFE3.SA 249.93 Sell 0 29.87
CPFE3.SA -90.03 Buy 3 0
CPFE3.SA -575.87 Buy 22 0
CPFE3.SA -92.12 Buy 25 0
CPFE3.SA 763.52 Sell 0 5.5
DIS -921.46 Buy 1 0
提前致谢,如果我能提供更多信息,请告诉我。
【问题讨论】:
标签: python pandas pandas-groupby reset cumsum