code: def _tile_dataframe(cls, op):
      from ...tensor.merge.stack import TensorStack
  
      df = op.outputs[0]
      if df.ndim == 1:
          if op.axis == 0:
              ts = []
              for name in df.index_value.to_pandas():
                  a = tensor_from_series(op.input[name])
                  t = tensor_quantile(
                      a,
                      op.q,
                      interpolation=op.interpolation,
                      handle_non_numeric=not op.numeric_only,
                  )
                  ts.append(t)
              try:
                  dtype = np.result_type(*[it.dtype for it in ts])
              except TypeError:
                  dtype = np.dtype(object)
              stack_op = TensorStack(axis=0, dtype=dtype)
              tr = stack_op(ts)
              r = series_from_tensor(
                  tr,
                  index=df.index_value.to_pandas(),
                  name=ts[0].op.q.item(),
              )
          else:
              assert op.axis == 1
              empty_df = build_empty_df(op.input.dtypes)
              fields = empty_df._get_numeric_data().columns.tolist()
              t = tensor_from_dataframe(op.input[fields])
              tr = tensor_quantile(
                  t,
                  op.q,
                  axis=1,
                  interpolation=op.interpolation,
                  handle_non_numeric=not op.numeric_only,
              )
              r = series_from_tensor(
                  tr, index=op.input.index, name=tr.op.q.item()
              )
      else:
          assert df.ndim == 2
          if op.axis == 0:
              d = OrderedDict()
              for name in df.dtypes.index:
                  a = tensor_from_series(op.input[name])
                  t = tensor_quantile(
                      a,
                      op.q,
                      interpolation=op.interpolation,
                      handle_non_numeric=not op.numeric_only,
                  )
                  d[name] = t
              r = create_df(d, index=op.q)
          else:
              assert op.axis == 1
              empty_df = build_empty_df(op.input.dtypes)
              fields = empty_df._get_numeric_data().columns.tolist()
              t = tensor_from_dataframe(op.input[fields])
              tr = tensor_quantile(
                  t,
                  op.q,
                  axis=1,
                  interpolation=op.interpolation,
                  handle_non_numeric=not op.numeric_only,
              )
              if not op.input.index_value.has_value():
                  raise NotImplementedError
              # TODO(xuye.qin): use index=op.input.index when we support DataFrame.index
              r = dataframe_from_tensor(
                  tr,
                  index=op.q,
                  columns=op.input.index_value.to_pandas(),
              )
  
      return (yield from recursive_tile(r))
  
imports: from collections import OrderedDict
  import numpy
  import pandas
  from ...None import opcodes
  from ...core import ENTITY_TYPE, recursive_tile
  from ...serialization.serializables import KeyField, AnyField, StringField, DataTypeField, BoolField, Int32Field
  from ...tensor.core import TENSOR_TYPE, TENSOR_CHUNK_TYPE
  from ...tensor.datasource import empty, tensor, from_series, from_dataframe
  from ...tensor.statistics.quantile import quantile
  from ..operands import DataFrameOperand, DataFrameOperandMixin
  from ..core import DATAFRAME_TYPE
  from ..datasource.from_tensor import series_from_tensor, dataframe_from_tensor
  from ..initializer import DataFrame
  from ..utils import parse_index, build_empty_df, find_common_type, validate_axis
label_desc: Use image node_id 12 for calling the DataFrameQuantile obj's underlying member method code with example usage: obj._tile_dataframe(cls, op) and returns: unknown