code: def tile(cls, op):
      out_chunks = []
      for c in op.inputs[0].chunks:
          chunk_op = op.copy().reset_key()
          chunk_shape = tuple(
              s if np.isnan(s) else int(s) for s in c.shape[::-1]
          )
          chunk_idx = c.index[::-1]
          index_value = parse_index(c.dtypes.index)
          columns_value = c.index_value
          out_chunk = chunk_op.new_chunk(
              [c],
              shape=chunk_shape,
              index=chunk_idx,
              index_value=index_value,
              columns_value=columns_value,
              dtypes=None,
          )
          out_chunks.append(out_chunk)
  
      new_op = op.copy()
      nsplits = op.inputs[0].nsplits[::-1]
      params = op.outputs[0].params
      return new_op.new_dataframe(
          op.inputs, chunks=out_chunks, nsplits=nsplits, **params
      )
  
file_path: mars/mars/dataframe/base/transpose.py
imports: import numpy
  from ...None import opcodes
  from ...core import OutputType
  from ..operands import DataFrameOperand, DataFrameOperandMixin
  from ..utils import parse_index
label_desc: Use image node_id 3 for calling the DataFrameTranspose obj's underlying member method code with example usage: obj.tile(cls, op) and returns: new_op