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

Method putmask

pandas/core/indexes/multi.py:4423–4461  ·  view source on GitHub ↗

Return a new MultiIndex of the values set with the mask. Parameters ---------- mask : array like value : MultiIndex Must either be the same length as self or length one Returns ------- MultiIndex

(self, mask, value: MultiIndex)

Source from the content-addressed store, hash-verified

4421 return item
4422
4423 def putmask(self, mask, value: MultiIndex) -> MultiIndex:
4424 """
4425 Return a new MultiIndex of the values set with the mask.
4426
4427 Parameters
4428 ----------
4429 mask : array like
4430 value : MultiIndex
4431 Must either be the same length as self or length one
4432
4433 Returns
4434 -------
4435 MultiIndex
4436 """
4437 mask, noop = validate_putmask(self, mask)
4438 if noop:
4439 return self.copy()
4440
4441 if len(mask) == len(value):
4442 subset = value[mask].remove_unused_levels()
4443 else:
4444 subset = value.remove_unused_levels()
4445
4446 new_levels = []
4447 new_codes = []
4448
4449 for i, (value_level, level, level_codes) in enumerate(
4450 zip(subset.levels, self.levels, self.codes, strict=True)
4451 ):
4452 new_level = level.union(value_level, sort=False)
4453 value_codes = new_level.get_indexer_for(subset.get_level_values(i))
4454 new_code = ensure_int64(level_codes)
4455 new_code[mask] = value_codes
4456 new_levels.append(new_level)
4457 new_codes.append(new_code)
4458
4459 return MultiIndex(
4460 levels=new_levels, codes=new_codes, names=self.names, verify_integrity=False
4461 )
4462
4463 def insert(self, loc: int, item) -> MultiIndex:
4464 """

Callers

nothing calls this directly

Calls 8

copyMethod · 0.95
validate_putmaskFunction · 0.90
MultiIndexClass · 0.85
remove_unused_levelsMethod · 0.80
get_indexer_forMethod · 0.80
get_level_valuesMethod · 0.80
unionMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected