如何根据多索引定义的范围对一列中的一系列值求和

How to sum a range of values in one column based on a range as defined by a multiindex

我完全被这个难住了

我有一个如下所示的 MultiIndex 数据框

               data
index1 index2  
0      1       8
       2       7
       3       6
       4       9
1      1       3
       2       4
       3       3
       4       6
2      1       5
       2       5

.....等等

我正在尝试根据 index2 中的一系列值对每个 index1 的数据列中的大量值求和,以创建一个新的数据框。

即如果我要根据上面示例中每个 index1 的 index2 的前 2 个值对应的数据值创建一个新的数据帧,我想得到,

index1 summed_data
0      15
1      7
2      10

有人知道怎么做吗?

你不需要改变你的输入格式,使用下面的语句:

x = df.groupby(level ='index1').agg({'data': lambda x: x[:2].sum()}).rename(columns = {'data':'summed_data'})

然后打印:

        summed_data
index1             
0                15
1                 7
2                10