小编Cor*_*can的帖子

如何在 pyomo 模型中提取索引变量信息并构建 Pandas Dataframe

我正在尝试使用 Pyomo 和多个不同大小的索引变量来解决 MIP。我想做的是将变量的结果导出到数据框,以便我可以进一步分析这些结果。我的问题是,我无法找到一种方法来很好地自动化该过程,因为索引变量的大小在每个模型模拟中都可能发生变化。

这是我将创建的一些变量的示例:

import pyomo.environ as pyo

model = pyo.ConcreteModel()

model.T = pyo.RangeSet(0, 10)
model.Generators = pyo.Set(initialize=(['equip_1', 'equip_2']))
model.Storages = pyo.Set(initialize=(['storage_1', 'storage_2']))

model.var_1 = pyo.Var(model.T, model.Generators, domain=pyo.NonNegativeReals)
model.var_2 = pyo.Var(model.T, domain=pyo.NonNegativeReals)
model.var_3 = pyo.Var(model.T, model.Storages, domain=pyo.NonNegativeReals)
model.var_4 = pyo.Var(model.T, model.Generators, domain=pyo.Binary, initialize=0)

# constraints and objective function here, which I don't think are relevant for the question
.
.
.
SolverFactory('cbc').solve(model).write()
Run Code Online (Sandbox Code Playgroud)

现在,我想创建以 model.T 作为索引、变量名称加上 model.Generator 或 model.Storages 作为 multiIndex 列的数据框(我假设它必须是 multiIndex,但也许不是)。我希望它的外观的粗略示例如下所示:

  |      Var_1      | Var_2 |        Var_3        | …
Run Code Online (Sandbox Code Playgroud)

python variables multi-index pandas pyomo

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

标签 统计

multi-index ×1

pandas ×1

pyomo ×1

python ×1

variables ×1