Python 按大熊猫组顺序计算差异
我试图尽可能高效地按顺序计算两列之间的差值。我的数据框如下所示:Python 按大熊猫组顺序计算差异,python,pandas,time-series,pandas-groupby,Python,Pandas,Time Series,Pandas Groupby,我试图尽可能高效地按顺序计算两列之间的差值。我的数据框如下所示: category sales initial_stock 1 2 20 1 6 20 1 1 20 2 4 30 2 6 30 2 5 30 2 7 30 c
category sales initial_stock
1 2 20
1 6 20
1 1 20
2 4 30
2 6 30
2 5 30
2 7 30
category sales initial_stock final_stock
1 2 20 18
1 6 20 12
1 1 20 11
2 4 30 26
2 6 30 20
2 5 30 15
2 7 30 8
我想计算一个变量final_stock
,如下所示:
category sales initial_stock
1 2 20
1 6 20
1 1 20
2 4 30
2 6 30
2 5 30
2 7 30
category sales initial_stock final_stock
1 2 20 18
1 6 20 12
1 1 20 11
2 4 30 26
2 6 30 20
2 5 30 15
2 7 30 8
因此,对于每个类别,final\u stock
first等于initial\u stock
-sales
,it等于final\u stock.shift()
-sales
。我用for
循环成功地做到了这一点,但速度相当慢,我的感觉是这个问题可能有一个或两个线性解决方案。你有什么想法吗
谢谢使用“销售”中的
groupby
和cumsum
获得每个类别的累计销售库存,然后从“初始库存”中减去:
该死,太快了。非常感谢,它很有魅力。看来我仍然有办法更高级地使用groupby