Python 熊猫:加入“熊猫”;对角线;
我有一个数据帧,其中索引是时间,但每行数据不是同质的w.r.t.时间,如下所示:Python 熊猫:加入“熊猫”;对角线;,python,pandas,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
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\u TQ
添加到下一行的obs\u PQ
:
real_obs
year quarter
1 1 7307.220283
1 2 8003.705087
有没有有效的矢量化方法?按索引分组在这里不起作用,因为我需要合并来自不同组的数据,而且我不知道在这种情况下可以使用任何其他工具。除非我遗漏了一些东西,否则你就不能将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
如果我有第三个子索引,比如
输入[0,1]
,会怎么样。确保这一点的一种方法是在执行命令之前预选df.query(“type==i”)
,并迭代所有i
。我是否可以在shift()
中加入此选项?