diff --git a/pandas/core/internals/blocks.py b/pandas/core/internals/blocks.py index cffb1f658a640..8fd6403bca574 100644 --- a/pandas/core/internals/blocks.py +++ b/pandas/core/internals/blocks.py @@ -651,6 +651,7 @@ def copy(self, deep: bool = True) -> Self: values = values.copy() refs = None else: + values = values.view() refs = self.refs return type(self)(values, placement=self._mgr_locs, ndim=self.ndim, refs=refs) @@ -658,9 +659,8 @@ def copy(self, deep: bool = True) -> Self: # Copy-on-Write Helpers def _maybe_copy(self, inplace: bool) -> Self: - if inplace: - deep = self.refs.has_reference() - return self.copy(deep=deep) + if inplace and not self.refs.has_reference(): + return self return self.copy() @final