code: def iloc(cls, dataset, index):
      rows, cols = index
      scalar = False
      columns = list(dataset.data.columns)
      if isinstance(cols, slice):
          cols = [d.name for d in dataset.dimensions()][cols]
      elif np.isscalar(cols):
          scalar = np.isscalar(rows)
          cols = [dataset.get_dimension(cols).name]
      else:
          cols = [dataset.get_dimension(d).name for d in index[1]]
      cols = [columns.index(c) for c in cols]
      if np.isscalar(rows):
          rows = [rows]
  
      if scalar:
          return dataset.data.iloc[rows[0], cols[0]]
      return dataset.data.iloc[rows, cols]
  
imports: import numpy
  import pandas
  from packaging.version import Version
  from pandas.api.types import is_numeric_dtype
  from ..None import util
  from ..dimension import Dimension, dimension_name
  from ..element import Element
  from ..ndmapping import NdMapping, item_check, sorted_context
  from .interface import DataError, Interface
  from .util import finite_range
label_desc: Use image node_id 22 for calling the PandasInterface obj's underlying member method code with example usage: obj.iloc(cls, dataset, index) and returns: dataset, dataset