在商店产品级别获得了数据框,如下面的示例所示:
Store Product Space Min Max Total_table Carton_Size
11 Apple 0.25 0.0625 0.75 2 6
11 Orange 0.5 0.125 0.5 2 null
11 Tomato 0.75 0.0625 0.75 2 6
11 Potato 0.375 0.0625 0.75 2 6
11 Melon 0.125 0.0625 0.5 2 null
场景:这里的所有产品都有1/8th的空间。但是,如果产品的carton_size不是 null,则考虑到 Min ( Space 不应小于 Min) 和 Max(Space 不应大于比最大)值。可以从非纸箱产品中获取空间,但最后,“空间”列的总和应等于/小于“总表”值。此外,这些 1/8 和 1/6 值与“Total_table”相关,这个 total_table 值被拆分为每个产品的空间。
示例:在上面给定的数据框中,三个产品具有纸箱尺寸,因此我们可以从顶部选择的非纸箱产品中取出 1/8 空间并将其拆分为 1/24(表示 1/24 + 1/24 + 1/24 = 1/8),可以将其添加到三个纸箱产品中,使其成为 1/6,考虑到最小值和最大值,形成如下所示的预期输出。如果任何产品不满足最小或最大条件 - 离开该产品(例如,番茄)。
粗略预期的输出:
Store Product Space Min Max Total_table Carton_Size
11 Apple 0.292 0.0625 0.75 2 6
11 Orange 0.375 0.125 0.5 2 null
11 Tomato 0.75 0.0625 0.75 2 6
11 Potato 0.417 0.0625 0.75 2 6
11 Melon 0.125 0.0625 0.5 2 null
需要 Python 中的解决方案。提前致谢!