我一直在尝试获取 pandas groupby 对象的 cumsum 。我需要将 cumsum 移动 1,这是通过 shift() 实现的。然而,在单个 groupby 对象上执行这两个函数会产生一些不需要的结果:
df = pd.DataFrame({'A': [1, 1, 1, 2, 2, 2],
'B': [2, 3, 5, 2, 3, 5]})
df.groupby('A').cumsum().shift()
这使:
B
0 NaN
1 2.0
2 5.0
3 10.0
4 2.0
5 5.0
IE。第 1 组上 cumsum() 的最后一个值被转移到第 2 组的第一个值中。我想要的是这些组保持分离,并得到:
B
0 NaN
1 2.0
2 5.0
3 NaN
4 2.0
5 5.0
但我不确定如何让这两个函数在组合的 groupby 对象上工作。在其他地方找不到这个问题。一直在玩 agg 但似乎无法解决这个问题。任何帮助,将不胜感激。