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

Method _verify_integrity

pandas/core/indexes/multi.py:364–440  ·  view source on GitHub ↗

Parameters ---------- codes : optional list Codes to check for validity. Defaults to current codes. levels : optional list Levels to check for validity. Defaults to current levels. levels_to_validate: optional list Specifie

(
        self,
        codes: list | None = None,
        levels: list | None = None,
        levels_to_verify: list[int] | range | None = None,
    )

Source from the content-addressed store, hash-verified

362 return code
363
364 def _verify_integrity(
365 self,
366 codes: list | None = None,
367 levels: list | None = None,
368 levels_to_verify: list[int] | range | None = None,
369 ) -> FrozenList:
370 """
371 Parameters
372 ----------
373 codes : optional list
374 Codes to check for validity. Defaults to current codes.
375 levels : optional list
376 Levels to check for validity. Defaults to current levels.
377 levels_to_validate: optional list
378 Specifies the levels to verify.
379
380 Raises
381 ------
382 ValueError
383 If length of levels and codes don't match, if the codes for any
384 level would exceed level bounds, or there are any duplicate levels.
385
386 Returns
387 -------
388 new codes where code value = -1 if it corresponds to a
389 NaN level.
390 """
391 # NOTE: Currently does not check, among other things, that cached
392 # nlevels matches nor that sortorder matches actually sortorder.
393 codes = codes or self.codes
394 levels = levels or self.levels
395 if levels_to_verify is None:
396 levels_to_verify = range(len(levels))
397
398 if len(levels) != len(codes):
399 raise ValueError(
400 "Length of levels and codes must match. NOTE: "
401 "this index is in an inconsistent state."
402 )
403 codes_length = len(codes[0])
404 for i in levels_to_verify:
405 level = levels[i]
406 level_codes = codes[i]
407
408 if len(level_codes) != codes_length:
409 raise ValueError(
410 f"Unequal code lengths: {[len(code_) for code_ in codes]}"
411 )
412 if len(level_codes) and level_codes.max() >= len(level):
413 raise ValueError(
414 f"On level {i}, code max ({level_codes.max()}) >= length of "
415 f"level ({len(level)}). NOTE: this index is in an "
416 "inconsistent state"
417 )
418 if len(level_codes) and level_codes.min() < -1:
419 raise ValueError(f"On level {i}, code value ({level_codes.min()}) < -1")
420 if not level.is_unique:
421 raise ValueError(

Calls 6

_validate_codesMethod · 0.95
FrozenListClass · 0.90
_lexsort_depthFunction · 0.85
maxMethod · 0.45
minMethod · 0.45
appendMethod · 0.45