繁体   English   中英

根据百分比值分配给人们

[英]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 的新手,只是习惯使用这些库。 因此,我无能为力。

我相信你正在寻找经典的优化问题Bin packing

您可以使用线性求解器方法,也可以使用现有的 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}]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM