MCPcopy
hub / github.com/pandas-dev/pandas / _make_selectors

Method _make_selectors

pandas/core/reshape/reshape.py:213–239  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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:

Callers 1

__init__Method · 0.95

Calls 6

get_compressed_idsFunction · 0.90
putMethod · 0.80
prodMethod · 0.45
sumMethod · 0.45
searchsortedMethod · 0.45
uniqueMethod · 0.45

Tested by

no test coverage detected