0

在商店产品级别获得了数据框,如下面的示例所示:

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 中的解决方案。提前致谢!

4

0 回答 0