Написание функции для получения сумм столбцов C / D в последний раз, когда столбцы A / B имеют значение c? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть таблица со спортивными результатами. Они помечены примерно так: столбец A - это команда хозяев, столбец B - команда гостей, столбец C - счет хозяев, столбец D - счет гостей, а столбец E - окончательный результат. Также для этой цели есть столбец даты, который я остановил, но он есть.

PIT   PHI   4   5   Away
PIT   BOS   3   5   Away
BOS   SJS   3   2   Home
SJS   PHI   1   1   Draw
PIT   SJS   3   2   Home
PHI   BOS   4   3   Home

Я хотел бы добавить два столбца к этому фрейму данных. У первого должна быть сумма голов, забитых за домашнюю команду в последних 3 играх (все игры, а не только домашние игры), но не включая результаты текущего ряда. У второго должна быть сумма голов, забитых за выездную команду в последних 3 играх (все игры, а не только выездные), но не включая результаты текущего ряда.

Итак, скажем, следующий ряд в этом листе есть: ЛС в качестве домашней команды, ПИТ в качестве домашней команды. В своих 3 последних играх до этого ЛС забил 11 голов. В своих 3 последних играх до этого ПИТ забил 10 голов. Таким образом, предполагая, что игра заканчивается 5-5 (или каков бы ни был результат), строка должна выглядеть следующим образом с двумя добавленными столбцами.

BOS   PIT   5   5   Draw   11   10

Есть пара вещей, которые делают это трудным для меня.

При нахождении последних 3 раз значение (скажем, «BOS») появляется в кадре данных, я не знаю, как объяснить, что оно может быть в столбце A или B. И я также не знаю, как указать, что значение следует добавлять из столбца C, когда BOS находится в столбце A, и из столбца D, когда BOS находится в столбце B.

Я хочу сделать это БЕЗ транспонирования набор данных, так что каждая команда имеет свою линию. Ie Я НЕ ХОЧУ:

BOS   5   Draw   11
PIT   5   Draw   10

Исходный набор данных нуждается в сохранении форматирования.

Наконец, мне также не ясно, как добавить это в строки, пока НЕ включая текущую строку в сумму. Это как-то просто с помощью shift ()?

Заранее большое спасибо.

...