Как я могу использовать groupby по индексам (1,2,3) (все они в одном порядке) и получить сумму оценок столбца, принадлежащих диапазону каждого индекса? В основном у меня есть это:
index score
1 2
2 2
3 2
1 3
2 3
3 3
Что я хочу:
index score sum
1 2 6
2 2 9
3 2
1 3
2 3
3 3
Я так понимаю должно быть примерно так:
df = df.groupby(['Year'])['Score'].sum()
а вместо Года как-то по индексам сделать?
df.groupby(level=0)['Score'].sum() или df.groupby(level=0).sum(), где level=0 — индекс.
да, но мне нужна сумма группы индексов, сумма 1-го 123 = 6 и второго 123 = 9 и т. д.






Согласно комментариям, вы можете groupby индексировать и возвращать cumcount() в новом объекте s. Затем вы можете сгруппировать этот новый объект s и получить sum(). Я предполагаю, что index находится в вашем index в вашем примере, а не в столбце с именем index. Если это столбец с именем index, то сначала сделайте df = df.set_index('index'):
s = df.groupby(level=0).cumcount()
df.groupby(s)['score'].sum()
0 6
1 9
Name: score, dtype: int64
Если распечатать s, то s будет выглядеть так:
index
1 0
2 0
3 0
1 1
2 1
3 1
также "оценка" - не единственная колонка