parameters: (self, mapper=lib.no_default, **kwargs)
docstring: Set the name of the axis for the index or columns.
  
          Parameters
          ----------
          mapper : scalar, list-like, optional
              Value to set the axis name attribute.
          index, columns : scalar, list-like, dict-like or function, optional
              A scalar, list-like, dict-like or functions transformations to
              apply to that axis' values.
  
              Use either ``mapper`` and ``axis`` to
              specify the axis to target with ``mapper``, or ``index``
              and/or ``columns``.
  
              .. versionchanged:: 0.24.0
  
          axis : {0 or 'index', 1 or 'columns'}, default 0
              The axis to rename.
          copy : bool, default True
              Also copy underlying data.
          inplace : bool, default False
              Modifies the object directly, instead of creating a new Series
              or DataFrame.
  
          Returns
          -------
          Series, DataFrame, or None
              The same type as the caller or None if `inplace` is True.
  
          See Also
          --------
          Series.rename : Alter Series index labels or name.
          DataFrame.rename : Alter DataFrame index labels or name.
          Index.rename : Set new names on index.
  
          Notes
          -----
          ``DataFrame.rename_axis`` supports two calling conventions
  
          * ``(index=index_mapper, columns=columns_mapper, ...)``
          * ``(mapper, axis={'index', 'columns'}, ...)``
  
          The first calling convention will only modify the names of
          the index and/or the names of the Index object that is the columns.
          In this case, the parameter ``copy`` is ignored.
  
          The second calling convention will modify the names of the
          the corresponding index if mapper is a list or a scalar.
          However, if mapper is dict-like or a function, it will use the
          deprecated behavior of modifying the axis *labels*.
  
          We *highly* recommend using keyword arguments to clarify your
          intent.
  
          Examples
          --------
          **Series**
  
          >>> s = pd.Series(["dog", "cat", "monkey"])
          >>> s
          0       dog
          1       cat
          2    monkey
          dtype: object
          >>> s.rename_axis("animal")
          animal
          0    dog
          1    cat
          2    monkey
          dtype: object
  
          **DataFrame**
  
          >>> df = pd.DataFrame({"num_legs": [4, 4, 2],
          ...                    "num_arms": [0, 0, 2]},
          ...                   ["dog", "cat", "monkey"])
          >>> df
                  num_legs  num_arms
          dog            4         0
          cat            4         0
          monkey         2         2
          >>> df = df.rename_axis("animal")
          >>> df
                  num_legs  num_arms
          animal
          dog            4         0
          cat            4         0
          monkey         2         2
          >>> df = df.rename_axis("limbs", axis="columns")
          >>> df
          limbs   num_legs  num_arms
          animal
          dog            4         0
          cat            4         0
          monkey         2         2
  
          **MultiIndex**
  
          >>> df.index = pd.MultiIndex.from_product([['mammal'],
          ...                                        ['dog', 'cat', 'monkey']],
          ...                                       names=['type', 'name'])
          >>> df
          limbs          num_legs  num_arms
          type   name
          mammal dog            4         0
                 cat            4         0
                 monkey         2         2
  
          >>> df.rename_axis(index={'type': 'class'})
          limbs          num_legs  num_arms
          class  name
          mammal dog            4         0
                 cat            4         0
                 monkey         2         2
  
          >>> df.rename_axis(columns=str.upper)
          LIMBS          num_legs  num_arms
          type   name
          mammal dog            4         0
                 cat            4         0
                 monkey         2         2
docstring_summary: Set the name of the axis for the index or columns.
docstring_tokens: Set the name of the axis for the index or columns .
function: def rename_axis(self, mapper=lib.no_default, **kwargs):
          """
          Set the name of the axis for the index or columns.
  
          Parameters
          ----------
          mapper : scalar, list-like, optional
              Value to set the axis name attribute.
          index, columns : scalar, list-like, dict-like or function, optional
              A scalar, list-like, dict-like or functions transformations to
              apply to that axis' values.
  
              Use either ``mapper`` and ``axis`` to
              specify the axis to target with ``mapper``, or ``index``
              and/or ``columns``.
  
              .. versionchanged:: 0.24.0
  
          axis : {0 or 'index', 1 or 'columns'}, default 0
              The axis to rename.
          copy : bool, default True
              Also copy underlying data.
          inplace : bool, default False
              Modifies the object directly, instead of creating a new Series
              or DataFrame.
  
          Returns
          -------
          Series, DataFrame, or None
              The same type as the caller or None if `inplace` is True.
  
          See Also
          --------
          Series.rename : Alter Series index labels or name.
          DataFrame.rename : Alter DataFrame index labels or name.
          Index.rename : Set new names on index.
  
          Notes
          -----
          ``DataFrame.rename_axis`` supports two calling conventions
  
          * ``(index=index_mapper, columns=columns_mapper, ...)``
          * ``(mapper, axis={'index', 'columns'}, ...)``
  
          The first calling convention will only modify the names of
          the index and/or the names of the Index object that is the columns.
          In this case, the parameter ``copy`` is ignored.
  
          The second calling convention will modify the names of the
          the corresponding index if mapper is a list or a scalar.
          However, if mapper is dict-like or a function, it will use the
          deprecated behavior of modifying the axis *labels*.
  
          We *highly* recommend using keyword arguments to clarify your
          intent.
  
          Examples
          --------
          **Series**
  
          >>> s = pd.Series(["dog", "cat", "monkey"])
          >>> s
          0       dog
          1       cat
          2    monkey
          dtype: object
          >>> s.rename_axis("animal")
          animal
          0    dog
          1    cat
          2    monkey
          dtype: object
  
          **DataFrame**
  
          >>> df = pd.DataFrame({"num_legs": [4, 4, 2],
          ...                    "num_arms": [0, 0, 2]},
          ...                   ["dog", "cat", "monkey"])
          >>> df
                  num_legs  num_arms
          dog            4         0
          cat            4         0
          monkey         2         2
          >>> df = df.rename_axis("animal")
          >>> df
                  num_legs  num_arms
          animal
          dog            4         0
          cat            4         0
          monkey         2         2
          >>> df = df.rename_axis("limbs", axis="columns")
          >>> df
          limbs   num_legs  num_arms
          animal
          dog            4         0
          cat            4         0
          monkey         2         2
  
          **MultiIndex**
  
          >>> df.index = pd.MultiIndex.from_product([['mammal'],
          ...                                        ['dog', 'cat', 'monkey']],
          ...                                       names=['type', 'name'])
          >>> df
          limbs          num_legs  num_arms
          type   name
          mammal dog            4         0
                 cat            4         0
                 monkey         2         2
  
          >>> df.rename_axis(index={'type': 'class'})
          limbs          num_legs  num_arms
          class  name
          mammal dog            4         0
                 cat            4         0
                 monkey         2         2
  
          >>> df.rename_axis(columns=str.upper)
          LIMBS          num_legs  num_arms
          type   name
          mammal dog            4         0
                 cat            4         0
                 monkey         2         2
          """
          axes, kwargs = self._construct_axes_from_arguments(
              (), kwargs, sentinel=lib.no_default
          )
          copy = kwargs.pop("copy", True)
          inplace = kwargs.pop("inplace", False)
          axis = kwargs.pop("axis", 0)
          if axis is not None:
              axis = self._get_axis_number(axis)
  
          if kwargs:
              raise TypeError(
                  "rename_axis() got an unexpected keyword "
                  f'argument "{list(kwargs.keys())[0]}"'
              )
  
          inplace = validate_bool_kwarg(inplace, "inplace")
  
          if mapper is not lib.no_default:
              # Use v0.23 behavior if a scalar or list
              non_mapper = is_scalar(mapper) or (
                  is_list_like(mapper) and not is_dict_like(mapper)
              )
              if non_mapper:
                  return self._set_axis_name(mapper, axis=axis, inplace=inplace)
              else:
                  raise ValueError("Use `.rename` to alter labels with a mapper.")
          else:
              # Use new behavior.  Means that index and/or columns
              # is specified
              result = self if inplace else self.copy(deep=copy)
  
              for axis in range(self._AXIS_LEN):
                  v = axes.get(self._AXIS_NAMES[axis])
                  if v is lib.no_default:
                      continue
                  non_mapper = is_scalar(v) or (is_list_like(v) and not is_dict_like(v))
                  if non_mapper:
                      newnames = v
                  else:
                      f = com.get_rename_function(v)
                      curnames = self._get_axis(axis).names
                      newnames = [f(name) for name in curnames]
                  result._set_axis_name(newnames, axis=axis, inplace=True)
              if not inplace:
                  return result
function_tokens: def rename_axis ( self , mapper = lib . no_default , * * kwargs ) : axes , kwargs = self . _construct_axes_from_arguments ( ( ) , kwargs , sentinel = lib . no_default ) copy = kwargs . pop ( "copy" , True ) inplace = kwargs . pop ( "inplace" , False ) axis = kwargs . pop ( "axis" , 0 ) if axis is not None : axis = self . _get_axis_number ( axis ) if kwargs : raise TypeError ( "rename_axis() got an unexpected keyword " f'argument "{list(kwargs.keys())[0]}"' ) inplace = validate_bool_kwarg ( inplace , "inplace" ) if mapper is not lib . no_default : # Use v0.23 behavior if a scalar or list non_mapper = is_scalar ( mapper ) or ( is_list_like ( mapper ) and not is_dict_like ( mapper ) ) if non_mapper : return self . _set_axis_name ( mapper , axis = axis , inplace = inplace ) else : raise ValueError ( "Use `.rename` to alter labels with a mapper." ) else : # Use new behavior.  Means that index and/or columns # is specified result = self if inplace else self . copy ( deep = copy ) for axis in range ( self . _AXIS_LEN ) : v = axes . get ( self . _AXIS_NAMES [ axis ] ) if v is lib . no_default : continue non_mapper = is_scalar ( v ) or ( is_list_like ( v ) and not is_dict_like ( v ) ) if non_mapper : newnames = v else : f = com . get_rename_function ( v ) curnames = self . _get_axis ( axis ) . names newnames = [ f ( name ) for name in curnames ] result . _set_axis_name ( newnames , axis = axis , inplace = True ) if not inplace : return result