我正在处理一个优化问题,我有不同的3D变量作为输出。我想在格式表中打印我的变量,但是我找不到方法。
下面是我的变量的一个例子:
model.zeta= Var(model.I,model.J,model.T,within=Binary) #starting time of an activity j of project i
model.eta= Var(model.I,model.J,model.T,within=Binary) #finsih time of an activity j of project i其中:
model.I=Set() #set of construction sites
model.J=Set() #set of project activities
model.T=Set() #set of periods我想让i&j作为我的行,t作为我的列,如下所示:

发布于 2021-10-20 23:00:06
您可以使用pandas和pyomo的结果来完成此任务。我将写一个例子:
让我们假设你已经对你的数据进行了建模,并在你陈述的时候解决了它:
model.I=Set() #set of construction sites
model.J=Set() #set of project activities
model.T=Set() #set of periods
model.zeta= Var(model.I,model.J,model.T,within=Binary) #starting time of an activity j of project i
model.eta= Var(model.I,model.J,model.T,within=Binary) #finsih time of an activity j of project i您需要为pandas DataFrame分隔index和columns,然后迭代您的变量以提取值并填充DataFrame
import pandas as pd
column = model.I*model.J
ind = model.T
df = pd.DataFrame(columns=column, index=ind)
for (i,j,t),val in model.zeta.items():
df.loc[(i,j),t] = val()
#show the data in dataframe
df.head()这应该会给你一个像这样的表:

https://stackoverflow.com/questions/69545369
复制相似问题