我有一个数据框,其中索引是时间,但每行的数据不是同质的w.r.t.时间,如下:
obs_TQ obs_PQ
year quarter
1 1 5499.330651 1655.414960
2 4650.849431 1807.889632
3 5417.065129 3352.855656
4 7771.021167 2343.369804
其中obs_TQ
是本季度的观察结果,而obs_PQ
是上一季度的观察结果。我想按季度总结观察结果,因此按季度的结果将是
real_obs
year quarter
1 1 obs_TQ[1,1] + obs_PQ[1,2]
1 2 obs_TQ[1,2] + obs_PQ[1,3]
也就是说,对于每一行,我需要将该行中的obs_TQ
从下一行添加到obs_PQ
:
real_obs
year quarter
1 1 7307.220283
1 2 8003.705087
有没有有效的矢量化方法呢?由于我需要组合来自不同组的数据,因此索引分组在这里不会起作用,而且我并不真正意识到我可以在此上下文中使用的任何其他工具。
答案 0 :(得分:2)
除非我遗漏了什么,否则你不能将TQ添加到转移的PQ中吗?
>>> (df["obs_TQ"] + df["obs_PQ"].shift(-1)).to_frame("real_obs")
real_obs
year quarter
1 1 7307.220283
2 8003.705087
3 7760.434933
4 NaN