基于Pandas中的条件求和行

时间:2017-03-06 19:56:42

标签: python pandas

我试图了解如何根据Pandas中的2个索引来总结行的子集。第一个索引对行进行分组,第二个索引将确定要求和的行。对于一个最小的例子,假设我有数据帧

index1 | index2 | value
------------------------
  a    |    1   |  10
  a    |    2   |  11
  a    |    3   |  12
  b    |    1   |  20
  b    |    2   |  21
  b    |    3   |  22

如何对与索引12相对应的行求和,但仍然将它们分组在索引ab下。即以下结果。

index1 | index2 | value
------------------------
  a    |    1   |  21
  a    |    2   |  12
  b    |    1   |  41
  b    |    2   |  22

此处与index21的{​​{1}}对应的行已归入2的新index2

1 个答案:

答案 0 :(得分:3)

您可以从 index2 列派生一个新数组/系列作为组变量,然后进行求和:

df.groupby([df.index1, ~df.index2.isin([1,2]) + 1]).value.sum().reset_index()

#index1 index2  value
#0    a      1     21
#1    a      2     12
#2    b      1     41
#3    b      2     22