我想将下面的 DataFrame 转换为 Python 字典。
输入:
pandas.DataFrame({"Customer":["C1","C1","C2","C2], "Material":["M1","M2","M3","M3"], "Supplier":["S1","S2","S3","S4"]})
Run Code Online (Sandbox Code Playgroud)
DataFrame 将如下所示:
Customer Material Supplier
0 C1 M1 S1
1 C1 M2 S2
2 C2 M3 S3
3 C2 M3 S4
Run Code Online (Sandbox Code Playgroud)
? 输出字典应如下所示:
{"C1": {"M1":["S1"], "M2":["S2"]}, "C2":{"M3":["S3","S4"]}}
Run Code Online (Sandbox Code Playgroud)
提前感谢您的帮助..!
我使用 Google OR Tools in Python 编写了一个约束编程模型,它使用 CP 求解器。我需要多次运行该模型,并且在每次运行中我都会修改约束。目前,每次我想运行模型时,我都会从头开始创建模型对象。无论如何,我可以修改现有模型的变量/约束,这样我就不需要每次都从头开始构建模型吗?
为了提供更好的上下文,请考虑以下示例模型。
from ortools.sat.python import cp_model
model = cp_model.CpModel()
num_vals = 3
a = model.NewIntVar(0, num_vals -1, 'a')
b = model.NewIntVar(0, num_vals -1, 'b')
c = model.NewIntVar(0, num_vals -1, 'c')
model.Add(a == b)
solver = cp_model.CpSolver()
solver.Solve(model)
Run Code Online (Sandbox Code Playgroud)
现在,在问题的第二次运行中,我想做以下更改。
5a==ba==c在不从头开始构建模型的情况下如何实现这一目标?
python mathematical-optimization constraint-programming or-tools cp-sat