code: def select(cls, dataset, selection_mask=None, **selection):
      xdim, ydim = cls.geom_dims(dataset)
      selection.pop(xdim.name, None)
      selection.pop(ydim.name, None)
      df = dataset.data
      if not selection:
          return df
      elif selection_mask is None:
          selection_mask = cls.select_mask(dataset, selection)
      indexed = cls.indexed(dataset, selection)
      df = df[selection_mask]
      if indexed and len(df) == 1 and len(dataset.vdims) == 1:
          return df[dataset.vdims[0].name].iloc[0]
      return df
  
imports: import sys
  from collections import defaultdict
  import numpy
  import pandas
  from ..dimension import dimension_name
  from ..util import isscalar, unique_array, unique_iterator
  from .interface import DataError, Interface
  from .multipath import MultiInterface, ensure_ring
  from .pandas import PandasInterface
label_desc: Use image node_id 13 for calling the SpatialPandasInterface obj's underlying member method code with example usage: obj.select(cls, dataset, selection_mask) and returns: df, df, df