Python Pandas — объединение нескольких строк с предстоящей датой

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

Вот пример моего DF (артикулы не упорядочены в моем df)

 Sku | Stock | Available_date
AAA | 0     | 20-08-2020
AAA | 50    | 25-08-2020
AAA | 150   | 09-09-2020
BBB | 15    | 20-08-2020
CCC | 0     | 20-08-2020
CCC | 100   | 09-09-2020
DDD | 0     | 20-08-2020
  

Как вы можете видеть:

  1. Большинство из них имеют несколько строк на артикул
  2. Он покажет артикул на текущую дату (на момент написания: 20-08-2020)
  3. Он покажет, когда произойдет следующее поступление количества запасов (например: для артикула AAA будет получено 50 25-08-2020 и 150 09-09-2020)
  4. Некоторые артикулы (в данном случае BBB) содержат только 1 строку, содержащую только количество артикулов и доступную дату.
  5. У некоторых есть 0 в наличии, а Available_date — текущая дата, и это все..

Запрошенный вывод:

  1. Если на текущую дату есть запас 0, возьмите следующую дату, когда есть запас
  2. При наличии запасов на текущую дату замените дату текстом (например, «доставка 2 дня»)
  3. Когда есть 0 запасов и только 1 дата / строка. Установите для текста значение «Неизвестно»
  4. Одна строка для 1 артикула, содержащая только «Sku» и «Delivery_time»

Пример вывода в csv для этого случая:

 Sku | Delivery_time
AAA | 25-08-2020
BBB | 2 day shipping
CCC | 09-09-2020
DDD | Unknown
  

Как мне нужно подойти к этому? Я знаю, как решить проблему, когда в dataframe есть только 1 строка на артикул. Но как мне решить эту проблему? Я думаю, мы начнем сначала с..

 df.sort_values(by=['SKU', 'Stock'])
  

Для сортировки фрейма данных pandas по артикулу и запасу.. Но тогда?

Заранее спасибо!

Комментарии:

1. Все ли запасы закончились на следующий день? Например, для артикула AAA равен ли запас на 26 августа 0?

2. Нет. Запасы не закончились на следующий день.