我一直在尝试对pandas groupby对象进行累加求和操作。我需要使用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
例如,在组1上cumsum()的最后一个值被移至组2的第一个值。我希望这些组保持分离,并获得以下结果:
B
0 NaN
1 2.0
2 5.0
3 NaN
4 2.0
5 5.0
但我不确定如何在组合的groupby对象上使两个函数都起作用。无法找到此问题的答案。已经尝试使用agg进行调整,但似乎无法解决。任何帮助将不胜感激。