Как правило, я хочу сгруппировать все идентификаторы из двух столбцов (['id1', 'id2]) и получить скользящую сумму (из последних 2 строк) их соответствующих значений из столбцов [' value1 ',' значение2' ]
ДФ:
id1 id2 value1 value2
-----------------------------------
a b 10 5
c a 5 10
b c 0 0
c d 2 1
d a 10 20
a c 5 10
b a 10 5
a b 5 2
c a 2 5
d b 5 2
df (если df.id = 'a') - просто для упрощения я показываю только с идентификатором 'a':
id1 id2 value1 value2 a.rolling.sum(2)
-----------------------------------------------------
a b 10 5 NaN
c a 5 10 20
d a 10 20 30
a c 5 10 25
b a 10 5 10
a b 5 2 10
c a 2 5 10
ожидайте df (включая все идентификаторы в столбцах ['id1', 'id2']):
id1 id2 value1 value2 a.rolling.sum(2) b.rolling.sum(2) c.rolling.sum(2)
---------------------------------------------------------------------------------------------
a b 10 5 NaN NaN NaN
c a 5 10 20 NaN NaN
b c 0 0 NaN 5 5
c d 2 1 NaN NaN 2
d a 10 20 30 NaN NaN
a c 5 10 25 NaN 12
b a 10 5 10 10 NaN
a b 5 2 10 12 NaN
c a 2 5 10 NaN 12
d b 5 2 NaN 4 NaN
Предпочтительно мне нужна функция groupby, которая назначает все идентификаторы, связанные с x.rolling (2), так как исходный набор данных имеет сотни идентификаторов для вычисления.