Как в столбце фрейма Pandas сложить некоторые ячейки по условию?

У меня есть датафрейм Pandas, где необходимо сложить по определенному столбцу часть его строк. Причем сделать это следует не произвольно а, двигаясь по порядку вниз, отмерять заданное переменной order количество строк.

Итак, сколько строк брать в сумму, подскажет определяемый пользователем показатель order. В нашем случае order=3, значит, складываем по 3 строки. Пока у меня получена исходная таблица. Размышляю над суммированием. Буду благодарен за идеи. Думаю пока в сторону группировки по строкам, но затрудняюсь в реализации.

Код:

import pandas as pd

order = 3
y_0 = 0
koefs_list = [3,4,5]
parameters_list = [1,1,1,2,2,2,3,3,3]

df = pd.DataFrame({"params":parameters_list, "koefs":koefs_list*int(len(parameters_list)/len(koefs_list))})
df["res"] = df["params"]*df["koefs"]+y_0
print(df)

В выводе мне необходимо сложить значения по столбцу res:

    params  koefs  res
0       1      3    3
1       1      4    4
2       1      5    5
3       2      3    6
4       2      4    8
5       2      5   10
6       3      3    9
7       3      4   12
8       3      5   15

Ответы (1 шт):

Автор решения: CrazyElf

Вообще у вас и так данные уже разбиты на нужные тройки и можно сделать так:

print(df.groupby('params')['res'].sum())

Но если всё же на это нельзя ориентироваться, то можно просто посчитать элементы с делением на цело на order:

df.groupby(pd.Series(range(df.shape[0]))//order)['res'].sum()

В обоих случаях вывод будет такой:

0    12
1    24
2    36
Name: res, dtype: int64
→ Ссылка