code: def rename(self, name, inplace=False):
          
          return self.set_names([name], inplace=inplace)
docs: Alter Index or MultiIndex name.
  
          Able to set new names without level. Defaults to returning new index.
          Length of names must match number of levels in MultiIndex.
  
          Parameters
          ----------
          name : label or list of labels
              Name(s) to set.
          inplace : boolean, default False
              Modifies the object directly, instead of creating a new Index or
              MultiIndex.
  
          Returns
          -------
          Index
              The same type as the caller or None if inplace is True.
  
          See Also
          --------
          Index.set_names : Able to set new names partially and by level.
  
          Examples
          --------
          >>> idx = pd.Index(['A', 'C', 'A', 'B'], name='score')
          >>> idx.rename('grade')
          Index(['A', 'C', 'A', 'B'], dtype='object', name='grade')
  
          >>> idx = pd.MultiIndex.from_product([['python', 'cobra'],
          ...                                   [2018, 2019]],
          ...                                   names=['kind', 'year'])
          >>> idx
          MultiIndex(levels=[['cobra', 'python'], [2018, 2019]],
                     codes=[[1, 1, 0, 0], [0, 1, 0, 1]],
                     names=['kind', 'year'])
          >>> idx.rename(['species', 'year'])
          MultiIndex(levels=[['cobra', 'python'], [2018, 2019]],
                     codes=[[1, 1, 0, 0], [0, 1, 0, 1]],
                     names=['species', 'year'])
          >>> idx.rename('species')
          Traceback (most recent call last):
          TypeError: Must pass list-like as `names`.