如何分组索引以及pandas中的列

时间:2014-12-01 15:36:17

标签: python pandas aggregate

假设我有一个简单的数据框,其中包含日期时间和三列的索引 - 一个是值,一个是聚合指标,最后一个是唯一标识符。该索引在整个数据框中不是唯一的,因为它在指标的多个实例上是重复的。即它看起来像这样:

index, val, aggregating indicator, unique_ref
1-Jan, 1, set_a,r1
2-Jan, 2, set_a,r2
1-Jan, 3, set_a,r3
2-Jan, 4, set_a,r4
1-Jan, 5, set_b,r5
2-Jan, 6, set_b,r6

是否可以通过索引和aggregateating_indicator聚合(一步)val和group?

即我想要的结果是

index, sum, aggregating_indicator
1-Jan, 4, set_a // ie 1+3
2-Jan, 6, set_a // ie 2+4
1-Jan, 5, set_b
2-Jan, 6, set_b

分两步完成它是可以的......但我想知道是否有可能以一种巧妙的方式做到这一点。

1 个答案:

答案 0 :(得分:2)

你可以这样做:

>>> df.reset_index().groupby(['index','aggregating indicator'])['val'].sum().reset_index()
   index aggregating indicator  val
0  1-Jan                 set_a    4
1  1-Jan                 set_b    5
2  2-Jan                 set_a    6
3  2-Jan                 set_b    6