提问人:OKAY SANDAL 提问时间:1/22/2023 最后编辑:Quang HoangOKAY SANDAL 更新时间:1/22/2023 访问量:61
根据百分比值分发给用户
To distribute to people according to percentage values
问:
我有一个想要创建的算法。该算法的结构应如下所示。下面是代码块中定义的 CSV 文件。在此文件中,每个客户都有特定的权重。这些权重的总和为 100%。
Customer,Weight
A,3.39
B,0.86
C,0.060000000000002274
D,1.43
E,24.66
F,0.34
G,24.49
H,7.59
I,7.24
J,25.58
K,3.96
L,0.4
我的目标:
例如,假设有 3 个人。当我想将客户平均分配给这 3 个人时,每个人都获得 33% 的份额。这些股票价值是从上面列出的客户的价值中获得的。我怎样才能将这些价值观平均分配给人们?
我的意见:
我倾向于在 Python 中使用像 Pandas 这样的库来进行这种分配。但我还不知道如何创建它。如果您可以分享此算法的代码示例或源代码,那对我来说会很棒。提前非常感谢您的帮助。
我尝试过什么:
我在 Python 中使用了 Pandas 库的许多参数进行了操作。但我是 Python 的新手,刚刚习惯使用这些库。正因为如此,我无能为力。
答:
0赞
Mahmoud
1/22/2023
#1
相信您正在寻找经典的优化问题 Bin 包装。
您可以使用线性求解器方法,也可以使用现有的 python 包来完成此确切的任务,最显着的是 numberpartitioning 或围绕它的包装器,如 binpacking。
$ pip install binpacking
>>> import binpacking
>>> b = {'A': 3.39, 'B': 0.86, 'C': 0.060000000000002274,
'D': 1.43, 'E': 24.66, 'F': 0.34, 'G': 24.49,
'H': 7.59, 'I': 7.24, 'J': 25.58, 'K': 3.96, 'L': 0.4}
>>> bins = binpacking.to_constant_bin_number(b, 3)
>>> bins
[{'J': 25.58, 'K': 3.96, 'A': 3.39, 'L': 0.4},
{'E': 24.66, 'I': 7.24, 'D': 1.43},
{'G': 24.49, 'H': 7.59, 'B': 0.86, 'F': 0.34, 'C': 0.060000000000002274}]
评论