小编Dev*_*shi的帖子

如何将 Pandas DataFrame 转换为只有值而没有列的 Python 字典?

我想将下面的 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)

提前感谢您的帮助..!

python dictionary dataframe pandas

2
推荐指数
1
解决办法
51
查看次数

如何修改现有 Google OR-Tools 约束编程模型的变量和约束?

我使用 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)

现在,在问题的第二次运行中,我想做以下更改。

  1. 将变量 c 的上限更改为5
  2. 删除约束a==b
  3. 创建新约束a==c

在不从头开始构建模型的情况下如何实现这一目标?

python mathematical-optimization constraint-programming or-tools cp-sat

1
推荐指数
1
解决办法
2187
查看次数