我有一个以下格式的数据集:
Amounts Type Target
500 1 380
200 1 380
100 2 380
200 2 380
我需要找出不同类型的Amounts
的哪种组合(例如,类型1的500和类型2的200 )将在加权平均值60/40之后产生目标值。
例如:
0.6 * 500 + 0.4 * 200 = 380,因此500和200的组合应该返回True。
我考虑了一个循环,将每一行与另一行相乘,以产生所有可能的组合(以Type
为条件),但不确定如何使itertools以另一列为条件?
我还希望只返回返回True的行的组合,也许可以通过索引或ID列进行标识?
谢谢!
发布于 2021-09-02 23:56:27
这将是相当低效的。
如果你考虑500个类型2的单位,目标是380,你知道你需要(380 - 0.6 x 500) / 0.4 = 200个类型2的单位。因此,每种类型的数量字典要好得多。
https://stackoverflow.com/questions/69041310
复制