diff --git a/pandas/_libs/reduction.pyx b/pandas/_libs/reduction.pyx index 4d0bd4744be5d..5649d1378cda3 100644 --- a/pandas/_libs/reduction.pyx +++ b/pandas/_libs/reduction.pyx @@ -66,9 +66,7 @@ cdef class _BaseGrouper: object.__setattr__(cached_ityp, '_index_data', islider.buf) cached_ityp._engine.clear_mapping() cached_ityp._cache.clear() # e.g. inferred_freq must go - object.__setattr__(cached_typ._mgr._block, 'values', vslider.buf) - object.__setattr__(cached_typ._mgr._block, 'mgr_locs', - slice(len(vslider.buf))) + cached_typ._mgr.set_values(vslider.buf) object.__setattr__(cached_typ, '_index', cached_ityp) object.__setattr__(cached_typ, 'name', self.name) diff --git a/pandas/core/internals/managers.py b/pandas/core/internals/managers.py index 2ad7471d6f086..09559e571d5ee 100644 --- a/pandas/core/internals/managers.py +++ b/pandas/core/internals/managers.py @@ -1654,6 +1654,7 @@ def set_values(self, values: ArrayLike): valid for the current Block/SingleBlockManager (length, dtype, etc). """ self.blocks[0].values = values + self.blocks[0]._mgr_locs = libinternals.BlockPlacement(slice(len(values))) # --------------------------------------------------------------------