Skip to content

Commit 3eb7b79

Browse files
Fix index caching (2)
1 parent f457dff commit 3eb7b79

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

pandas/_libs/reduction.pyx

+5-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ cdef class _BaseGrouper:
5656
cdef inline _update_cached_objs(self, object cached_typ, object cached_ityp,
5757
Slider islider, Slider vslider):
5858
if cached_typ is None:
59-
cached_ityp = self.ityp(islider.buf)
59+
cached_ityp = self.ityp(islider.buf, dtype=self.idtype)
6060
cached_typ = self.typ(
6161
vslider.buf, dtype=vslider.buf.dtype, index=cached_ityp, name=self.name
6262
)
@@ -65,7 +65,6 @@ cdef class _BaseGrouper:
6565
# We need this for EA-backed indexes that have a reference
6666
# to a 1-d ndarray like datetime / timedelta / period.
6767
object.__setattr__(cached_ityp, '_index_data', islider.buf)
68-
object.__setattr__(cached_ityp, '_data', islider.buf)
6968
cached_ityp._engine.clear_mapping()
7069
cached_ityp._cache.clear() # e.g. inferred_freq must go
7170
cached_typ._mgr.set_values(vslider.buf)
@@ -107,6 +106,7 @@ cdef class SeriesBinGrouper(_BaseGrouper):
107106
cdef public:
108107
ndarray arr, index, dummy_arr, dummy_index
109108
object values, f, bins, typ, ityp, name
109+
object idtype
110110

111111
def __init__(self, object series, object f, object bins):
112112

@@ -122,6 +122,7 @@ cdef class SeriesBinGrouper(_BaseGrouper):
122122
self.arr = values
123123
self.typ = series._constructor
124124
self.ityp = series.index._constructor
125+
self.idtype = series.index.dtype
125126
self.index = series.index.values
126127
self.name = series.name
127128

@@ -200,6 +201,7 @@ cdef class SeriesGrouper(_BaseGrouper):
200201
cdef public:
201202
ndarray arr, index, dummy_arr, dummy_index
202203
object f, labels, values, typ, ityp, name
204+
object idtype
203205

204206
def __init__(self, object series, object f, ndarray[intp_t] labels,
205207
Py_ssize_t ngroups):
@@ -218,6 +220,7 @@ cdef class SeriesGrouper(_BaseGrouper):
218220
self.arr = values
219221
self.typ = series._constructor
220222
self.ityp = series.index._constructor
223+
self.idtype = series.index.dtype
221224
self.index = series.index.values
222225
self.name = series.name
223226

0 commit comments

Comments
 (0)