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



我真的被这个难倒

了我有一个看起来像这样的多索引数据帧

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 的数据列中的值负载求和,以创建新的数据帧。

即,如果我要从对应于上面示例中每个索引 1 的 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