У меня есть некоторые данные, подобные этому:
labels = ["sku", "buildfrom", "factor", "quantity"]
records = [("pipe5", "pipe10", 2, 1),
("pipe10", "pipe20", 2, 4),
("pipe20", "pipe20", 1, 3)]
df = pd.DataFrame.from_records(records, columns=labels)
В этих данных pipe5 - продукт с доступным количеством 1, однако pipe5 может быть изготовлен из pipe10 , как buildfrom столбец показывает. А значение 2 в столбце factor означает, что элемент buildfrom может составлять 2 единицы элемента sku .
Я хотел бы создать столбец с именем «can_make_qty» и заполнить его возможным общим количеством sku, которое мы можем сделать доступным.
В этом случае значения can_make_qty будут:
- 3 для pipe20 (поскольку значения buildfrom == sku, а factor равен 1)
- 10 для трубы10 (4 из собственного запаса + (2 * 3) из трубы20)
- 21 для трубы 5 (1 из собственного запаса + (2 * 10) из трубы 10)
Я вижу некоторое использование рекурсивной логики здесь, но я не знаю, как закодировать ее в функцию, чтобы добавить результаты в "can_make_qty".
Любая помощь будет принята с благодарностью.