code: def create_index(self, columns=None, optlevel=None, kind=None):
          
  
          if not self.infer_axes():
              return
          if columns is False:
              return
  
          # index all indexables and data_columns
          if columns is None or columns is True:
              columns = [a.cname for a in self.axes if a.is_data_indexable]
          if not isinstance(columns, (tuple, list)):
              columns = [columns]
  
          kw = dict()
          if optlevel is not None:
              kw['optlevel'] = optlevel
          if kind is not None:
              kw['kind'] = kind
  
          table = self.table
          for c in columns:
              v = getattr(table.cols, c, None)
              if v is not None:
  
                  # remove the index if the kind/optlevel have changed
                  if v.is_indexed:
                      index = v.index
                      cur_optlevel = index.optlevel
                      cur_kind = index.kind
  
                      if kind is not None and cur_kind != kind:
                          v.remove_index()
                      else:
                          kw['kind'] = cur_kind
  
                      if optlevel is not None and cur_optlevel != optlevel:
                          v.remove_index()
                      else:
                          kw['optlevel'] = cur_optlevel
  
                  # create the index
                  if not v.is_indexed:
                      if v.type.startswith('complex'):
                          raise TypeError(
                              'Columns containing complex values can be stored '
                              'but cannot'
                              ' be indexed when using table format. Either use '
                              'fixed format, set index=False, or do not include '
                              'the columns containing complex values to '
                              'data_columns when initializing the table.')
                      v.create_index(**kw)
docs: Create a pytables index on the specified columns
            note: cannot index Time64Col() or ComplexCol currently;
            PyTables must be >= 3.0
  
          Parameters
          ----------
          columns : False (don't create an index), True (create all columns
              index), None or list_like (the indexers to index)
          optlevel: optimization level (defaults to 6)
          kind    : kind of index (defaults to 'medium')
  
          Exceptions
          ----------
          raises if the node is not a table