(self)
| 211 | return sorted_values |
| 212 | |
| 213 | def _make_selectors(self) -> None: |
| 214 | new_levels = self.new_index_levels |
| 215 | |
| 216 | # make the mask |
| 217 | remaining_labels = self.sorted_labels[:-1] |
| 218 | level_sizes = tuple(len(x) for x in new_levels) |
| 219 | |
| 220 | comp_index, obs_ids = get_compressed_ids(remaining_labels, level_sizes) |
| 221 | ngroups = len(obs_ids) |
| 222 | |
| 223 | comp_index = ensure_platform_int(comp_index) |
| 224 | stride = self.index.levshape[self.level] + self.has_nan |
| 225 | self.full_shape = ngroups, stride |
| 226 | |
| 227 | selector = self.sorted_labels[-1] + stride * comp_index + self.lift |
| 228 | mask = np.zeros(np.prod(self.full_shape), dtype=bool) |
| 229 | mask.put(selector, True) |
| 230 | |
| 231 | if mask.sum() < len(self.index): |
| 232 | raise ValueError("Index contains duplicate entries, cannot reshape") |
| 233 | |
| 234 | self.group_index = comp_index |
| 235 | self.mask = mask |
| 236 | if self.sort: |
| 237 | self.compressor = comp_index.searchsorted(np.arange(ngroups)) |
| 238 | else: |
| 239 | self.compressor = np.sort(np.unique(comp_index, return_index=True)[1]) |
| 240 | |
| 241 | @cache_readonly |
| 242 | def mask_all(self) -> bool: |
no test coverage detected