pandas 按百分比值分配给人员

mspsb9vt  于 2023-01-24  发布在  其他
关注(0)|答案(1)|浏览(128)

我想创建一个算法。该算法的结构应该如下所示。下面是代码块中定义的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新手,刚刚习惯使用这些库,因此,我做不了太多。

nkoocmlb

nkoocmlb1#

我相信您正在寻找经典的优化问题Bin packing
你可以使用linear solver approach或者你可以使用现有的python包来完成这个任务,最著名的是numberpartitioning或者像binpacking这样的 Package 器。

$ 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}]

相关问题