def drop_duplicates(self, subset=None, keep='<STR_LIT>', inplace=False):
if self.empty:<EOL><INDENT>return self.copy()<EOL><DEDENT>inplace = validate_bool_kwarg(inplace, '<STR_LIT>')<EOL>duplicated = self.duplicated(subset, keep=keep)<EOL>if inplace:<EOL><INDENT>inds, = (-duplicated)._ndarray_values.nonzero()<EOL>new_data = self._data.take(inds)<EOL>self._update_inplace(new_data)<EOL><DEDENT>else:<EOL><INDENT>return self[-duplicated]<EOL><DEDENT>
Return DataFrame with duplicate rows removed, optionally only
considering certain columns. Indexes, including time indexes
are ignored.

Parameters
----------
subset : column label or sequence of labels, optional
    Only consider certain columns for identifying duplicates, by
    default use all of the columns
keep : {'first', 'last', False}, default 'first'
    - ``first`` : Drop duplicates except for the first occurrence.
    - ``last`` : Drop duplicates except for the last occurrence.
    - False : Drop all duplicates.
inplace : boolean, default False
    Whether to drop duplicates in place or to return a copy

Returns
-------
DataFrame