熊猫:添加“对角线”

时间:2015-03-30 19:55:52

标签: python pandas

我有一个数据框,其中索引是时间,但每行的数据不是同质的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

有没有有效的矢量化方法呢?由于我需要组合来自不同组的数据,因此索引分组在这里不会起作用,而且我并不真正意识到我可以在此上下文中使用的任何其他工具。

1 个答案:

答案 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