Накопительная сумма в pandas неиндексированных данных по дате - PullRequest
0 голосов
/ 26 мая 2020

У меня ситуация, когда я пытаюсь суммировать значения в большом наборе данных на основе нескольких критериев.

Мне удалось добиться этого, используя вложенный l oop с другим скриптом, но надеялся что использовать Pandas может быть проще.

мой набор данных выглядит так.

date         regionNo    sales
2020-04-15   1           2
2020-04-14   1           3
2020-04-15   2           3
2020-04-14   2           1

Я хочу добавить столбец, который показывает совокупные продажи в регионе на эту конкретную дату.

Условные выражения будут примерно такими:

salesSum = sum(['sales'] where ['date'] <= "*row date*" and ['region'] == "*row region*")

Приносим извинения за приведенный выше код. Это своего рода псевдокод python -y.

Проблема в том, что я не знаю, как ссылаться на значение в таблице. Как ссылка на ячейку в excel.

Возможно ли это в pandas?

Я хочу, чтобы мой фрейм данных выглядел так:

date         regionNo    sales  salesSum
2020-04-15   1           2      5
2020-04-14   1           3      3
2020-04-15   2           3      4
2020-04-14   2           1      1

Любая помощь будет очень оценен.

1 Ответ

0 голосов
/ 26 мая 2020

Этот вид обратной ссылки обычно выполняется оконными функциями. Однако в вашем случае у вас есть зависимость от значения столбца date. Так что фиксированное окно работать не будет. Что вы можете сделать, так это использовать DataFrame.groupby.apply, где вы группируете по "regionNo". Учтите, что делать это медленно и не рекомендуется. Но, к сожалению, я не знаю другого способа добиться такого рода «условной агрегации».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...