names = ['equity', 'intl_equity', 'bond', 'intl_bond', 'commodity', 'pe',
    'hf', 'cash']
mapper = Series(zip(names, intervals))
fully_mapped = mapper[init_weights.get_level_values(0)]
original_dataset['range'] = fully_mapped.values
SciPy optimization with grouped bounds