如何使用多索引将熊猫数据框中的单行与多行相加?

问题描述 投票:2回答:2

我的带有季度和星期作为多索引的数据框:

Quarter   Week      X   Y   Z
Q1        Q1-W01    1   1   1
          Q1-W02    2   2   2
          Q1-W03    3   3   3
          Q1-W04    4   4   4
Q2        Q2-W15    15  15  15
          Q2-W16    16  16  16
          Q2-W17    17  17  17
          Q2-W18    18  18  18

我正在尝试将Q1(Q1-W04)的最后一行添加到Q2(Q2-W15至Q2-W18)的所有行中。这就是我希望数据框看起来像的样子:

Quarter   Week      X   Y   Z
Q1        Q1-W01    1   1   1
          Q1-W02    2   2   2
          Q1-W03    3   3   3
          Q1-W04    4   4   4
Q2        Q2-W15    19  19  19
          Q2-W16    20  20  20
          Q2-W17    21  21  21
          Q2-W18    22  22  22

[当我尝试仅指定级别0索引并求和特定行时,所有Q2值都转到NaN。

df.loc['Q2'] += df.loc['Q1','Q1-W04'] 

Quarter   Week      X   Y   Z
Q1        Q1-W01    1   1   1
          Q1-W02    2   2   2
          Q1-W03    3   3   3
          Q1-W04    4   4   4
Q2        Q2-W15    NaN NaN NaN
          Q2-W16    NaN NaN NaN
          Q2-W17    NaN NaN NaN
          Q2-W18    NaN NaN NaN

我已经知道,如果同时指定0级和1级索引,则没有问题。

df.loc['Q2','Q2-W15'] += df.loc['Q1','Q1-W04']

Quarter   Week      X   Y   Z
Q1        Q1-W01    1   1   1
          Q1-W02    2   2   2
          Q1-W03    3   3   3
          Q1-W04    4   4   4
Q2        Q2-W15    19  19  19
          Q2-W16    16  16  16
          Q2-W17    17  17  17
          Q2-W18    18  18  18

是否有一种方法可以将特定行与Q2级别0索引内的所有行求和,而不必通过其级别1索引单独调出每一行?

任何见识/指导将不胜感激。

谢谢。

python pandas dataframe multi-index
2个回答
0
投票
尝试一下

0
投票
在您的情况下,我们应消除index的影响
© www.soinside.com 2019 - 2024. All rights reserved.