diff --git a/mesa/batchrunner.py b/mesa/batchrunner.py index e5f23652317..c10a4570107 100644 --- a/mesa/batchrunner.py +++ b/mesa/batchrunner.py @@ -82,6 +82,7 @@ def __init__(self, model_cls, variable_parameters=None, self.model_cls = model_cls self.variable_parameters = self._process_parameters(variable_parameters) self.fixed_parameters = fixed_parameters or {} + self._include_fixed = len(self.fixed_parameters.keys()) > 0 self.iterations = iterations self.max_steps = max_steps @@ -193,4 +194,7 @@ def _prepare_report_table(self, vars_dict, extra_cols=None): rest_cols = set(df.columns) - set(index_cols) ordered = df[index_cols + list(sorted(rest_cols))] ordered.sort_values(by='Run', inplace=True) + if self._include_fixed: + for param in self.fixed_parameters.keys(): + ordered[param] = self.fixed_parameters[param] return ordered diff --git a/tests/test_batchrunner.py b/tests/test_batchrunner.py index e9b9904b9f8..d815f30b95e 100644 --- a/tests/test_batchrunner.py +++ b/tests/test_batchrunner.py @@ -155,6 +155,7 @@ def test_model_with_variable_and_fixed_kwargs(self): batch = self.launch_batch_processing() model_vars = batch.get_model_vars_dataframe() expected_cols = (len(self.variable_params) + + len(self.fixed_params) + len(self.model_reporters) + 1) self.assertEqual(model_vars.shape, (self.model_runs, expected_cols))