Skip to content

Commit 923d7d0

Browse files
committed
BUG: partial fix to pandas-dev#33132
1 parent 952ac1b commit 923d7d0

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

pandas/core/groupby/ops.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
from pandas.core.dtypes.missing import _maybe_fill, isna
4040

4141
import pandas.core.algorithms as algorithms
42+
from pandas.core.arrays import Categorical
4243
from pandas.core.base import SelectionMixin
4344
import pandas.core.common as com
4445
from pandas.core.frame import DataFrame
@@ -837,11 +838,22 @@ def names(self):
837838

838839
@property
839840
def groupings(self) -> "List[grouper.Grouping]":
841+
codes, _, _ = self.group_info
842+
843+
if self.indexer is not None and len(self.indexer) != len(codes):
844+
groupers = self.levels
845+
else:
846+
groupers = [self.result_index._constructor(
847+
Categorical.from_codes(self.codes_info, self.result_index))]
848+
840849
return [
841850
grouper.Grouping(lvl, lvl, in_axis=False, level=None, name=name)
842-
for lvl, name in zip(self.levels, self.names)
851+
for lvl, name in zip(groupers, self.names)
843852
]
844853

854+
def __iter__(self):
855+
return iter(self.groupings[0].grouper)
856+
845857
def agg_series(self, obj: Series, func):
846858
# Caller is responsible for checking ngroups != 0
847859
assert self.ngroups != 0

0 commit comments

Comments
 (0)