Skip to main content
`Ctrl`+`K`

# pandas.Index.rename

Index.rename(name, *, inplace=False)

  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:
    namelabel or list of labels

      Name(s) to set.

    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.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([('python', 2018),
                  ('python', 2019),
                  ( 'cobra', 2018),
                  ( 'cobra', 2019)],
                 names=['kind', 'year'])
      >>> idx.rename(['species', 'year'])
      MultiIndex([('python', 2018),
                  ('python', 2019),
                  ( 'cobra', 2018),
                  ( 'cobra', 2019)],
                 names=['species', 'year'])
      >>> idx.rename('species')
      Traceback (most recent call last):
      TypeError: Must pass list-like as `names`.