pandas.Index.set_names#
- Index.set_names(names, *, level=None, inplace=False)[source]#
- Set Index or MultiIndex name. - Able to set new names partially and by level. - Parameters
- nameslabel or list of label or dict-like for MultiIndex
- Name(s) to set. - Changed in version 1.3.0. 
- levelint, label or list of int or label, optional
- If the index is a MultiIndex and names is not dict-like, level(s) to set (None for all levels). Otherwise level must be None. - Changed in version 1.3.0. 
- inplacebool, default False
- Modifies the object directly, instead of creating a new Index or MultiIndex. 
 
- Returns
- Index or None
- The same type as the caller or None if - inplace=True.
 
 - See also - Index.rename
- Able to set new names without level. 
 - Examples - >>> idx = pd.Index([1, 2, 3, 4]) >>> idx Index([1, 2, 3, 4], dtype='int64') >>> idx.set_names('quarter') Index([1, 2, 3, 4], dtype='int64', name='quarter') - >>> idx = pd.MultiIndex.from_product([['python', 'cobra'], ... [2018, 2019]]) >>> idx MultiIndex([('python', 2018), ('python', 2019), ( 'cobra', 2018), ( 'cobra', 2019)], ) >>> idx = idx.set_names(['kind', 'year']) >>> idx.set_names('species', level=0) MultiIndex([('python', 2018), ('python', 2019), ( 'cobra', 2018), ( 'cobra', 2019)], names=['species', 'year']) - When renaming levels with a dict, levels can not be passed. - >>> idx.set_names({'kind': 'snake'}) MultiIndex([('python', 2018), ('python', 2019), ( 'cobra', 2018), ( 'cobra', 2019)], names=['snake', 'year'])