code: def rank(
          self,
          axis=0,
          method="average",
          numeric_only=None,
          na_option="keep",
          ascending=True,
          pct=False,
      ):
          
          axis = self._get_axis_number(axis)
          return self.__constructor__(
              query_compiler=self._query_compiler.rank(
                  axis=axis,
                  method=method,
                  numeric_only=numeric_only,
                  na_option=na_option,
                  ascending=ascending,
                  pct=pct,
              )
          )
docs: Compute numerical data ranks (1 through n) along axis.
          Equal values are assigned a rank that is the [method] of
          the ranks of those values.
  
          Args:
              axis (int): 0 or 'index' for row-wise,
                          1 or 'columns' for column-wise
              method: {'average', 'min', 'max', 'first', 'dense'}
                  Specifies which method to use for equal vals
              numeric_only (boolean)
                  Include only float, int, boolean data.
              na_option: {'keep', 'top', 'bottom'}
                  Specifies how to handle NA options
              ascending (boolean):
                  Decedes ranking order
              pct (boolean):
                  Computes percentage ranking of data
          Returns:
              A new DataFrame