Рассчитать оборачиваемость запасов в Python, принимая разницу с помощью groupby? - PullRequest
0 голосов
/ 27 марта 2019

У меня есть датафрейм, который содержит информацию об инвентаризации.Один столбец - тип продукта (т. Е. A, B, C), один столбец - номер инвентаря для каждого продукта, один столбец - дата (т. Е. День 1, день 2, день 3).Например (см. Таблицу ниже), в день 1 у нас есть 1 продукт A;на второй день у нас есть 3 продукта A и 2 продукта B;на 3-й день у нас есть 6 продуктов B.

product | inventory | day
   A    |    1      |  1 
   A    |    3      |  2
   B    |    2      |  2
   B    |    6      |  3

Я хотел бы рассчитать изменение продукта для каждого дня.Желаемая результирующая таблица показана ниже.Хитрость заключается в том, что каждый день некоторые продукты могут отсутствовать, или может появиться какой-то новый продукт. Например, на 3-й день продукт A больше не существует (другими словами, все 3 продукта A на 2-й день исчезают на 3-й день).).На второй день появляется новый продукт B, поскольку у нас нет запаса для него на первый день. Помните, что некоторые продукты могут исчезнуть в определенный день и вернуться позже, а затем снова исчезнуть.

product | inventory_change | day
   A    |    1             |  1 
   A    |    2             |  2
   B    |    2             |  2
   A    |    -3            |  3
   B    |    4             |  3

Я уверен, что могу использовать цикл, чтобы пройти через каждый ряд, чтобы достичь его.Мне интересно, есть ли более эффективный способ завершить его без цикла?Я думаю, что использую groupby, но все еще не удается найти выход без использования цикла, особенно учитывая, что список доступных продуктов может отличаться каждый день (т. Е. День1: A, день2 A, B; день3: B) Любая идея или предложения?

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