Hi,
Constants are defined as regular Python values (floats or integers), such as
c = 5
and can be used in expressions.
If you would like to use the value in dataframe, you can access the actual value as:
c = df.at[0, 'c']
Here's a full example:
import pandas as pd
# Define dataframe
df = pd.DataFrame([[4, 5, 6]], columns=['a', 'b', 'c'])
# Define model
m = so.Model(name='model1', session=None)
# Get columns
a = df['a']
b = df['b']
c = df.at[0, 'c']
# Define variables
va = m.add_variables(a.index.tolist(), name='va')
vb = m.add_variables(b.index.tolist(), name='vb')
# Set objective
obj = m.set_objective((va.mult(a) + vb.mult(b)) * c, name='obj')
# Print the objective function
print(m.get_objective())
This will print the objective function as
24 * va[0] + 30 * vb[0]
If this doesn't solve your problem, could you provide a minimal working example?
... View more