python - 基于条件的所有可能组合并在python中应用求解器?
问题描述
我有以下格式的数据集:
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。
我想到了一个循环,将每一行与另一行相乘以产生所有可能的组合(有条件地 on Type
),但不确定如何使 itertools 以另一列为条件?
我也只希望返回返回 True 的行组合,也许可以通过索引或 ID 列识别?
谢谢!
解决方案
这将是非常低效的。
如果您考虑 500 单位的类型 2 和 380 的目标,您知道您需要 (380 - 0.6 x 500) / 0.4 = 200 单位的类型 2。因此每种类型的数量字典要好得多。
推荐阅读
- excel - 如何将我的代码转换为不使用“选择”?
- mysql - 为什么我不能将这些值插入到我添加到此数据库的表中?
- javascript - map() 不返回任何内容
- react-native - Calc 函数在 expo go 应用程序中不起作用 - 反应原生
- c - 不推荐使用 NewPtrClear
- kotlin - 为什么我不能访问`::class.companionObject`?
- arduino - 重载函数处理 char 和 String
- python - Swapping columns of a matrix without numpy
- excel - 通过将 T 列和吨转换为吨和其余 0 将 S 列转换为吨,我应该在查找时使用还是在搜索公式 plzh 时使用
- android - 滚动后选中的复选框在recyclerview中变为未选中