def quantile(self, qs, interpolation='<STR_LIT>', axis=<NUM_LIT:0>):
if self.is_datetimetz:<EOL><INDENT>values = self.values.asi8<EOL>if self.ndim > <NUM_LIT:1>:<EOL><INDENT>values = values[None, :]<EOL><DEDENT><DEDENT>else:<EOL><INDENT>values = self.get_values()<EOL>values, _ = self._try_coerce_args(values, values)<EOL><DEDENT>is_empty = values.shape[axis] == <NUM_LIT:0><EOL>orig_scalar = not is_list_like(qs)<EOL>if orig_scalar:<EOL><INDENT>qs = [qs]<EOL><DEDENT>if is_empty:<EOL><INDENT>if self.ndim == <NUM_LIT:1>:<EOL><INDENT>result = self._na_value<EOL><DEDENT>else:<EOL><INDENT>result = np.repeat(np.array([self.fill_value] * len(qs)),<EOL>len(values)).reshape(len(values),<EOL>len(qs))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>mask = np.asarray(isna(self.values))<EOL>result = nanpercentile(values, np.array(qs) * <NUM_LIT:100>,<EOL>axis=axis, na_value=self.fill_value,<EOL>mask=mask, ndim=self.ndim,<EOL>interpolation=interpolation)<EOL>result = np.array(result, copy=False)<EOL>if self.ndim > <NUM_LIT:1>:<EOL><INDENT>result = result.T<EOL><DEDENT><DEDENT>if orig_scalar and not lib.is_scalar(result):<EOL><INDENT>assert result.shape[-<NUM_LIT:1>] == <NUM_LIT:1>, result.shape<EOL>result = result[..., <NUM_LIT:0>]<EOL>result = lib.item_from_zerodim(result)<EOL><DEDENT>ndim = getattr(result, '<STR_LIT>', None) or <NUM_LIT:0><EOL>result = self._try_coerce_result(result)<EOL>return make_block(result,<EOL>placement=np.arange(len(result)),<EOL>ndim=ndim)<EOL>
compute the quantiles of the

Parameters
----------
qs: a scalar or list of the quantiles to be computed
interpolation: type of interpolation, default 'linear'
axis: axis to compute, default 0

Returns
-------
Block