【发布时间】:2021-12-21 02:40:53
【问题描述】:
我对 python 并不陌生,我在编写一些棘手的代码时面临挑战和错误。如果您能提供帮助,那就太好了:
场景: 我有两个数据集如下: 一种是:
Location
0 loc1
1 loc2
2 loc3
3 loc4
4 loc5
5 loc6
6 loc7
7 loc8
8 loc9...and so on.
还有一个是:
Item Rank Weight
0 1001 1 18
1 1002 2 21
2 1003 3 20
3 1004 4 7
4 1005 5 27
5 1006 6 20
6 1007 7 11
7 1008 8 31
8 1009 9 30
9 1010 10 23 and so on
我想创建一个函数来根据每个项目的排名和重量为其分配一个插槽。其中排名 1 表示高,而最高的数字表示 100,表示排名最低。
如果排名最高,即我需要将项目放置到第一个位置。以及排名第二高的项目到第二位置,依此类推。但是在放置位置时,我还会检查权重是否超过 25,如果超过 25,那么我不想将它们分配在 loc4、loc5 和 loc6
例如:如果我有 1005 排名为 5 但重量为 27 大于 25,那么我不会将它们放置在 loc4 或 loc5 或 loc6 位置。我会把它放在下一个可用的位置。
预期输出:
Item Rank Weight Location
0 1001 1 18 loc1
1 1002 2 21 loc2
2 1003 3 20 loc3
3 1004 4 7 loc4
4 1005 5 27 loc7
5 1006 6 20 loc5
6 1007 7 11 loc6
7 1008 8 31 loc8
8 1009 9 30 loc9
9 1010 10 23 loc10
请帮忙
【问题讨论】:
-
为什么 1010 有 loc10 而没有 loc7?
-
@Corralien 因为找到第 9 级项目之后的下一个可用位置是 loc10 对吗?而 1010 排名第 10,这就是为什么
-
但是 1010 的权重是 23,低于 25,而位置 1008 和 1009 的权重大于 25。我不明白为什么 (1005, 1006, 1007) 与 (1008, 1009, 1010)
-
大于 25 的重量更重,这就是我不将它们放在 loc4、loc5 和 loc6 上的原因。因为 loc4、loc5、loc6 是机架顶部。而其余的位置不是机架顶部的一部分。这样我就可以放更重的东西了
-
请提供足够的代码,以便其他人更好地理解或重现问题。
标签: python python-3.x pandas python-2.7