Skip to content

Commit f83a0d5

Browse files
committed
new method for BaseGrouper and inherited class
1 parent 4f20ca2 commit f83a0d5

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

pandas/core/groupby.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -1897,6 +1897,15 @@ def group_info(self):
18971897
comp_ids = _ensure_int64(comp_ids)
18981898
return comp_ids, obs_group_ids, ngroups
18991899

1900+
# 17530
1901+
@cache_readonly
1902+
def label_info(self):
1903+
labels, _, _ = self.group_info
1904+
if self.indexer is not None:
1905+
sorter = np.lexsort((labels, self.indexer))
1906+
labels = labels[sorter]
1907+
return labels
1908+
19001909
def _get_compressed_labels(self):
19011910
all_labels = [ping.labels for ping in self.groupings]
19021911
if len(all_labels) > 1:
@@ -2596,11 +2605,8 @@ def _make_labels(self):
25962605
if self._labels is None or self._group_index is None:
25972606
# for the situation of groupby list of groupers
25982607
if isinstance(self.grouper, BaseGrouper):
2599-
labels, _, _ = self.grouper.group_info
2608+
labels = self.grouper.label_info
26002609
uniques = self.grouper.result_index
2601-
if self.grouper.indexer is not None:
2602-
sorter = np.lexsort((labels, self.grouper.indexer))
2603-
labels = labels[sorter]
26042610
else:
26052611
labels, uniques = algorithms.factorize(
26062612
self.grouper, sort=self.sort)

0 commit comments

Comments
 (0)