def remove(self, key, where=None, start=None, stop=None):
where = _ensure_term(where, scope_level=<NUM_LIT:1>)<EOL>try:<EOL><INDENT>s = self.get_storer(key)<EOL><DEDENT>except KeyError:<EOL><INDENT>raise<EOL><DEDENT>except Exception:<EOL><INDENT>if where is not None:<EOL><INDENT>raise ValueError(<EOL>"<STR_LIT>")<EOL><DEDENT>s = self.get_node(key)<EOL>if s is not None:<EOL><INDENT>s._f_remove(recursive=True)<EOL>return None<EOL><DEDENT><DEDENT>if com._all_none(where, start, stop):<EOL><INDENT>s.group._f_remove(recursive=True)<EOL><DEDENT>else:<EOL><INDENT>if not s.is_table:<EOL><INDENT>raise ValueError(<EOL>'<STR_LIT>')<EOL><DEDENT>return s.delete(where=where, start=start, stop=stop)<EOL><DEDENT>
Remove pandas object partially by specifying the where condition

Parameters
----------
key : string
    Node to remove or delete rows from
where : list of Term (or convertible) objects, optional
start : integer (defaults to None), row number to start selection
stop  : integer (defaults to None), row number to stop selection

Returns
-------
number of rows removed (or None if not a Table)

Exceptions
----------
raises KeyError if key is not a valid store