diff --git a/pandas/core/frame.py b/pandas/core/frame.py index 1e9f8995b6bed..5c04678cd5fa6 100644 --- a/pandas/core/frame.py +++ b/pandas/core/frame.py @@ -4678,22 +4678,16 @@ def drop_duplicates( inplace = validate_bool_kwarg(inplace, "inplace") duplicated = self.duplicated(subset, keep=keep) - if inplace: - (inds,) = np.asarray(-duplicated).nonzero() - new_data = self._data.take(inds) + result = self[-duplicated] + if ignore_index: + result.index = ibase.default_index(len(result)) - if ignore_index: - new_data.axes[1] = ibase.default_index(len(inds)) - self._update_inplace(new_data) + if inplace: + self._update_inplace(result._data) + return None else: - result = self[-duplicated] - - if ignore_index: - result.index = ibase.default_index(len(result)) return result - return None - def duplicated( self, subset: Optional[Union[Hashable, Sequence[Hashable]]] = None,