Python 如何按索引和列进行分组

Python 如何按索引和列进行分组,python,pandas,aggregate,Python,Pandas,Aggregate,假设我有一个简单的dataframe,它有一个datetime索引和三列—一列是值,一列是聚合指示符,最后一列是唯一标识符。索引在整个数据帧中不是唯一的,因为它在指示器的多个实例上重复。它看起来像这样: 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,

假设我有一个简单的dataframe,它有一个datetime索引和三列—一列是值,一列是聚合指示符,最后一列是唯一标识符。索引在整个数据帧中不是唯一的,因为它在指示器的多个实例上重复。它看起来像这样:

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
>>> 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
是否可以(在一个步骤中)通过索引和聚合指示符聚合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

分两步做就可以了。。。但我想知道是否有可能用一种简洁的方式来做这件事。

你可以这样做:

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

到目前为止很好。。不过,索引没有名称-很抱歉在问题中没有明确说明这一点。哎呀,划破它。很好!将在3分钟内接受回答(如果允许)