class_docstr: Orchestrates a concatenation operation for BlockManagers
class_docstr_tok: ["Orchestrates","a","concatenation","operation","for","BlockManagers"]
code: def get_result(self):
      # series only
      if self._is_series:
          # stack blocks
          if self.axis == 0:
              name = com.consensus_name_attr(self.objs)
  
              mgr = self.objs[0]._data.concat(
                  [x._data for x in self.objs], self.new_axes
              )
              cons = _concat._get_series_result_type(mgr, self.objs)
              return cons(mgr, name=name).__finalize__(
                  self, method="concat"
              )
  
          # combine as columns in a frame
          else:
              data = dict(zip(range(len(self.objs)), self.objs))
              cons = _concat._get_series_result_type(data)
  
              index, columns = self.new_axes
              df = cons(data, index=index)
              df.columns = columns
              return df.__finalize__(self, method="concat")
  
      # combine block managers
      else:
          mgrs_indexers = []
          for obj in self.objs:
              mgr = obj._data
              indexers = {}
              for ax, new_labels in enumerate(self.new_axes):
                  if ax == self.axis:
                      # Suppress reindexing on concat axis
                      continue
  
                  obj_labels = mgr.axes[ax]
                  if not new_labels.equals(obj_labels):
                      indexers[ax] = obj_labels.reindex(new_labels)[1]
  
              mgrs_indexers.append((obj._data, indexers))
  
          new_data = concatenate_block_managers(
              mgrs_indexers,
              self.new_axes,
              concat_axis=self.axis,
              copy=self.copy,
          )
          if not self.copy:
              new_data._consolidate_inplace()
  
          cons = _concat._get_frame_result_type(new_data, self.objs)
          return cons._from_axes(new_data, self.new_axes).__finalize__(
              self, method="concat"
          )
  
imports: import numpy
  import pandas.core.dtypes.concat
  from pandas import DataFrame, Index, MultiIndex, Series, compat
  from pandas.core import common
  from pandas.core.arrays.categorical import _factorize_from_iterable, _factorize_from_iterables
  from pandas.core.generic import NDFrame
  from pandas.core.index import _all_indexes_same, _get_consensus_names, _get_objs_combined_axis, ensure_index
  import pandas.core.indexes.base
  from pandas.core.internals import concatenate_block_managers
label_desc: Use image node_id 2 for calling the _Concatenator obj's underlying member method code with example usage: obj.get_result() and returns: cons, cons, df