Skip to content

Commit 38b241b

Browse files
committed
MultiIndex.labels -> MulitIndex.codes
1 parent 643ae52 commit 38b241b

25 files changed

+260
-281
lines changed

pandas/core/frame.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -1807,7 +1807,7 @@ def to_panel(self):
18071807
selfsorted = self
18081808

18091809
major_axis, minor_axis = selfsorted.index.levels
1810-
major_labels, minor_labels = selfsorted.index.labels
1810+
major_codes, minor_codes = selfsorted.index.codes
18111811
shape = len(major_axis), len(minor_axis)
18121812

18131813
# preserve names, if any
@@ -1822,8 +1822,8 @@ def to_panel(self):
18221822

18231823
# create new manager
18241824
new_mgr = selfsorted._data.reshape_nd(axes=new_axes,
1825-
labels=[major_labels,
1826-
minor_labels],
1825+
labels=[major_codes,
1826+
minor_codes],
18271827
shape=shape,
18281828
ref_items=selfsorted.columns)
18291829

@@ -4259,7 +4259,7 @@ def _maybe_casted_values(index, labels=None):
42594259
if isinstance(self.index, MultiIndex):
42604260
names = [n if n is not None else ('level_%d' % i)
42614261
for (i, n) in enumerate(self.index.names)]
4262-
to_insert = lzip(self.index.levels, self.index.labels)
4262+
to_insert = lzip(self.index.levels, self.index.codes)
42634263
else:
42644264
default = 'index' if 'index' not in self else 'level_0'
42654265
names = ([default] if self.index.name is None
@@ -7167,8 +7167,9 @@ def _count_level(self, level, axis=0, numeric_only=False):
71677167
level = count_axis._get_level_number(level)
71687168

71697169
level_index = count_axis.levels[level]
7170-
labels = ensure_int64(count_axis.labels[level])
7171-
counts = lib.count_level_2d(mask, labels, len(level_index), axis=0)
7170+
level_codes = ensure_int64(count_axis.codes[level])
7171+
counts = lib.count_level_2d(mask, level_codes, len(level_index),
7172+
axis=0)
71727173

71737174
result = DataFrame(counts, index=level_index, columns=agg_axis)
71747175

pandas/core/groupby/generic.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1111,7 +1111,7 @@ def value_counts(self, normalize=False, sort=True, ascending=False,
11111111
lab = cut(Series(val), bins, include_lowest=True)
11121112
lev = lab.cat.categories
11131113
lab = lev.take(lab.cat.codes)
1114-
llab = lambda lab, inc: lab[inc]._multiindex.labels[-1]
1114+
llab = lambda lab, inc: lab[inc]._multiindex.codes[-1]
11151115

11161116
if is_interval_dtype(lab):
11171117
# TODO: should we do this inside II?

pandas/core/indexes/base.py

+17-17
Original file line numberDiff line numberDiff line change
@@ -3258,27 +3258,27 @@ def droplevel(self, level=0):
32583258
# The two checks above guarantee that here self is a MultiIndex
32593259

32603260
new_levels = list(self.levels)
3261-
new_labels = list(self.labels)
3261+
new_codes = list(self.codes)
32623262
new_names = list(self.names)
32633263

32643264
for i in levnums:
32653265
new_levels.pop(i)
3266-
new_labels.pop(i)
3266+
new_codes.pop(i)
32673267
new_names.pop(i)
32683268

32693269
if len(new_levels) == 1:
32703270

32713271
# set nan if needed
3272-
mask = new_labels[0] == -1
3273-
result = new_levels[0].take(new_labels[0])
3272+
mask = new_codes[0] == -1
3273+
result = new_levels[0].take(new_codes[0])
32743274
if mask.any():
32753275
result = result.putmask(mask, np.nan)
32763276

32773277
result.name = new_names[0]
32783278
return result
32793279
else:
32803280
from .multi import MultiIndex
3281-
return MultiIndex(levels=new_levels, labels=new_labels,
3281+
return MultiIndex(levels=new_levels, labels=new_codes,
32823282
names=new_names, verify_integrity=False)
32833283

32843284
_index_shared_docs['get_indexer'] = """
@@ -4054,19 +4054,19 @@ def _get_leaf_sorter(labels):
40544054
left_indexer = None
40554055
join_index = left
40564056
else: # sort the leaves
4057-
left_indexer = _get_leaf_sorter(left.labels[:level + 1])
4057+
left_indexer = _get_leaf_sorter(left.codes[:level + 1])
40584058
join_index = left[left_indexer]
40594059

40604060
else:
40614061
left_lev_indexer = ensure_int64(left_lev_indexer)
40624062
rev_indexer = lib.get_reverse_indexer(left_lev_indexer,
40634063
len(old_level))
40644064

4065-
new_lev_labels = algos.take_nd(rev_indexer, left.labels[level],
4065+
new_lev_labels = algos.take_nd(rev_indexer, left.codes[level],
40664066
allow_fill=False)
40674067

4068-
new_labels = list(left.labels)
4069-
new_labels[level] = new_lev_labels
4068+
new_codes = list(left.codes)
4069+
new_codes[level] = new_lev_labels
40704070

40714071
new_levels = list(left.levels)
40724072
new_levels[level] = new_level
@@ -4075,7 +4075,7 @@ def _get_leaf_sorter(labels):
40754075
left_indexer = np.arange(len(left), dtype=np.intp)
40764076
mask = new_lev_labels != -1
40774077
if not mask.all():
4078-
new_labels = [lab[mask] for lab in new_labels]
4078+
new_codes = [lab[mask] for lab in new_codes]
40794079
left_indexer = left_indexer[mask]
40804080

40814081
else: # tie out the order with other
@@ -4086,31 +4086,31 @@ def _get_leaf_sorter(labels):
40864086

40874087
# missing values are placed first; drop them!
40884088
left_indexer = left_indexer[counts[0]:]
4089-
new_labels = [lab[left_indexer] for lab in new_labels]
4089+
new_codes = [lab[left_indexer] for lab in new_codes]
40904090

40914091
else: # sort the leaves
40924092
mask = new_lev_labels != -1
40934093
mask_all = mask.all()
40944094
if not mask_all:
4095-
new_labels = [lab[mask] for lab in new_labels]
4095+
new_codes = [lab[mask] for lab in new_codes]
40964096

4097-
left_indexer = _get_leaf_sorter(new_labels[:level + 1])
4098-
new_labels = [lab[left_indexer] for lab in new_labels]
4097+
left_indexer = _get_leaf_sorter(new_codes[:level + 1])
4098+
new_codes = [lab[left_indexer] for lab in new_codes]
40994099

41004100
# left_indexers are w.r.t masked frame.
41014101
# reverse to original frame!
41024102
if not mask_all:
41034103
left_indexer = mask.nonzero()[0][left_indexer]
41044104

4105-
join_index = MultiIndex(levels=new_levels, labels=new_labels,
4105+
join_index = MultiIndex(levels=new_levels, labels=new_codes,
41064106
names=left.names, verify_integrity=False)
41074107

41084108
if right_lev_indexer is not None:
41094109
right_indexer = algos.take_nd(right_lev_indexer,
4110-
join_index.labels[level],
4110+
join_index.codes[level],
41114111
allow_fill=False)
41124112
else:
4113-
right_indexer = join_index.labels[level]
4113+
right_indexer = join_index.codes[level]
41144114

41154115
if flip_order:
41164116
left_indexer, right_indexer = right_indexer, left_indexer

0 commit comments

Comments
 (0)