code: def __call__(self, arg):
      if isinstance(arg, pd.Series):
          arg = asseries(arg)
      elif not isinstance(arg, ENTITY_TYPE):
          arg = astensor(arg)
      if arg.ndim != 1:
          raise ValueError("Input array must be 1 dimensional")
      if arg.size == 0:
          raise ValueError("Input array can not be empty")
  
      if isinstance(arg, asseries):
          series = arg
          self.output_types = [OutputType.series]
          return self.new_series(
              [series],
              shape=series.shape,
              name=series.name,
              index_value=series.index_value,
              dtype=series.dtype,
          )
      else:
          tensor = arg
          self.output_types = [OutputType.tensor]
          dtype = tensor.dtype
          if dtype.kind == "U":
              dtype = np.dtype(object)
          return self.new_tileables(
              [tensor], shape=tensor.shape, dtype=dtype
          )[0]
  
file_path: mars/mars/dataframe/base/to_numeric.py
imports: import numpy
  import pandas
  from ..operands import DataFrameOperand, DataFrameOperandMixin
  from ...serialization.serializables import StringField
  from ..initializer import Series
  from ...tensor import tensor
  from ..core import SERIES_TYPE
  from ...tensor.core import TENSOR_TYPE, TensorOrder
  from ...core import ENTITY_TYPE, OutputType
label_desc: Use image node_id 2 for calling the DataFrameToNumeric obj's underlying member method code with example usage: obj.__call__(arg) and returns: self, self