@@ -1897,6 +1897,15 @@ def group_info(self):
1897
1897
comp_ids = _ensure_int64 (comp_ids )
1898
1898
return comp_ids , obs_group_ids , ngroups
1899
1899
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
+
1900
1909
def _get_compressed_labels (self ):
1901
1910
all_labels = [ping .labels for ping in self .groupings ]
1902
1911
if len (all_labels ) > 1 :
@@ -2596,11 +2605,8 @@ def _make_labels(self):
2596
2605
if self ._labels is None or self ._group_index is None :
2597
2606
# for the situation of groupby list of groupers
2598
2607
if isinstance (self .grouper , BaseGrouper ):
2599
- labels , _ , _ = self .grouper .group_info
2608
+ labels = self .grouper .label_info
2600
2609
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 ]
2604
2610
else :
2605
2611
labels , uniques = algorithms .factorize (
2606
2612
self .grouper , sort = self .sort )
0 commit comments