Скользящее вычисление панд с окном, основанным на значениях вместо количества

я ищу способ сделать что-то вроде различныхrolling_* функцииpandas, но я хочу, чтобы окно скользящего вычисления определялось диапазоном значений (скажем, диапазоном значений столбца DataFrame), а не количеством строк в окне.

В качестве примера, предположим, у меня есть эти данные:

>>> print d
   RollBasis  ToRoll
0          1       1
1          1       4
2          1      -5
3          2       2
4          3      -4
5          5      -2
6          8       0
7         10     -13
8         12      -2
9         13      -5

Если я сделаю что-то вродеrolling_sum(d, 5)Я получаю скользящую сумму, в которой каждое окно содержит 5 строк. Но то, что я хочу, - это скользящая сумма, в которой каждое окно содержит определенный диапазон значенийRollBasis, То есть яя хотел бы иметь возможность сделать что-то вродеd.roll_by(sum, 'RollBasis', 5)и получить результат, в котором первое окно содержит все строки, чьиRollBasis между 1 и 5, тогда второе окно содержит все строки, чьиRollBasis между 2 и 6, то третье окно содержит все строки, чьиRollBasis между 3 и 7 и т. д. Окна не будут иметь одинаковое количество строк, но диапазонRollBasis значения, выбранные в каждом окне, будут одинаковыми. Таким образом, вывод должен быть таким:

>>> d.roll_by(sum, 'RollBasis', 5)
    1    -4    # sum of elements with 1 

Ответы на вопрос(3)

Ваш ответ на вопрос