我想按邮政编码分组,形成塔克,但如果它达到30000它应该形成另一辆卡车。我不能申请分组和排名。可能需要按升序对重量进行排序,以形成正确的卡车。任何帮助都将不胜感激。你知道吗
我有以下数据:
Load No. Zip Code Pounds
1 50507 20000
2 50507 8000
3 50507 5000
4 60001 28000
5 60001 30000
6 60001 2000
7 60001 4000
8 60002 20000
9 60002 18000
10 60002 13000
输出:
Load No. Zip Code Pounds Truck Total Weight
1 50507 20000 1 28000
2 50507 8000 1 28000
3 50507 5000 2 5000
4 60001 28000 3 30000
5 60001 30000 5 2000
6 60001 2000 3 30000
7 60001 4000 4 4000
8 60002 20000 6 20000
9 60002 18000 7 18000
10 60002 13000 8 13000
我已经对数据帧进行了排序: 数据=data.sort\u值(按=['邮政编码','英镑'])
还尝试按邮政编码分组,但未能将条件(>;20000)设置为密集等级: 数据['总重量']=数据.groupby('Zip Code')['Pounds'].transform(总和)
我想我看到了你想要完成的,所以我完成了你想要的部分,剩下的留给你自己决定。这个问题中最困难的部分似乎是智能地分配负载以最大化卡车空间。把东西分开是没有问题的,但这并不像检查负载是否少于30000那么简单。你知道吗
首先,在卡车之间智能分配负载的方法:
你没有提到任何负载是否会超过30000次,所以我离开了。这本身就是一个有趣的问题(将45000分为两个负载:30000和15000,将65000分为30000和5000)。我做了一些测试,包括你的:
输出:
为了了解这种情况,我跑了:
其中
data
是您提供的原始数据的数据帧。希望剩下的问题对你来说变得明显。如果没有,请尽管问,我会尽我最大的努力来帮助你(我留下了很多不完整的东西,因为这对你来说是一个很大的学习问题,但是我不想花太多的时间在上面)。可能有很多方法可以做到这一点,这是我看到的第一种方法。我还想到了一种递归的方法来实现这一点,可能有效,也可能无效。你知道吗相关问题 更多 >
编程相关推荐