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

Method _set_codes

pandas/core/indexes/multi.py:1130–1169  ·  view source on GitHub ↗
(
        self,
        codes,
        *,
        level=None,
        copy: bool = False,
        validate: bool = True,
        verify_integrity: bool = False,
    )

Source from the content-addressed store, hash-verified

1128 return self._codes
1129
1130 def _set_codes(
1131 self,
1132 codes,
1133 *,
1134 level=None,
1135 copy: bool = False,
1136 validate: bool = True,
1137 verify_integrity: bool = False,
1138 ) -> None:
1139 if validate:
1140 if level is None and len(codes) != self.nlevels:
1141 raise ValueError("Length of codes must match number of levels")
1142 if level is not None and len(codes) != len(level):
1143 raise ValueError("Length of codes must match length of levels.")
1144
1145 level_numbers: list[int] | range
1146 if level is None:
1147 new_codes = FrozenList(
1148 _coerce_indexer_frozen(level_codes, lev, copy=copy).view()
1149 for lev, level_codes in zip(self._levels, codes, strict=True)
1150 )
1151 level_numbers = range(len(new_codes))
1152 else:
1153 level_numbers = [self._get_level_number(lev) for lev in level]
1154 new_codes_list = list(self._codes)
1155 for lev_num, level_codes in zip(level_numbers, codes, strict=True):
1156 lev = self.levels[lev_num]
1157 new_codes_list[lev_num] = _coerce_indexer_frozen(
1158 level_codes, lev, copy=copy
1159 )
1160 new_codes = FrozenList(new_codes_list)
1161
1162 if verify_integrity:
1163 new_codes = self._verify_integrity(
1164 codes=new_codes, levels_to_verify=level_numbers
1165 )
1166
1167 self._codes = new_codes
1168
1169 self._reset_cache()
1170
1171 def set_codes(
1172 self, codes, *, level=None, verify_integrity: bool = True

Callers 3

__new__Method · 0.80
set_codesMethod · 0.80
remove_unused_levelsMethod · 0.80

Calls 6

_get_level_numberMethod · 0.95
_verify_integrityMethod · 0.95
FrozenListClass · 0.90
_coerce_indexer_frozenFunction · 0.85
_reset_cacheMethod · 0.80
viewMethod · 0.45

Tested by

no test coverage detected