Skip to content

Commit cf4060e

Browse files
committed
various changes
1 parent 1f080cf commit cf4060e

File tree

10 files changed

+159
-120
lines changed

10 files changed

+159
-120
lines changed

doc/source/whatsnew/v0.24.0.rst

+8
Original file line numberDiff line numberDiff line change
@@ -1010,6 +1010,14 @@ Other API Changes
10101010
Deprecations
10111011
~~~~~~~~~~~~
10121012

1013+
- :attr:`MultiIndex.labels` has been deprecated and replaced by :attr:`MultiIndex.codes`.
1014+
The functionality is unchanged. This new name better reflects the natures of
1015+
these codes and makes the API more similar to the API for
1016+
:class:`CategoricalIndex`(:issue:`13443`).
1017+
As a concequence, other uses of the name ``labels`` have also been deprecated in ``MultiIndex`` and replaced with ``codes``:
1018+
- You should initialize a MultiIndex instance using a parameter named ``codes`` rather than ``labels``.
1019+
- :meth:`MultiIndex.set_labels` has been deprecated in favor of :meth:`MultiIndex.set_codes`
1020+
- for method :meth:`MultiIndex.copy`, the ``labels`` parameter has been deprecated and replaced by a ``codes`` parameter.
10131021
- :meth:`DataFrame.to_stata`, :meth:`read_stata`, :class:`StataReader` and :class:`StataWriter` have deprecated the ``encoding`` argument. The encoding of a Stata dta file is determined by the file type and cannot be changed (:issue:`21244`)
10141022
- :meth:`MultiIndex.to_hierarchical` is deprecated and will be removed in a future version (:issue:`21613`)
10151023
- :meth:`Series.ptp` is deprecated. Use ``numpy.ptp`` instead (:issue:`21614`)

pandas/core/indexes/base.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -3990,14 +3990,14 @@ def _join_multi(self, other, how, return_indexers=True):
39903990
# common levels, ldrop_names, rdrop_names
39913991
dropped_names = ldrop_names + rdrop_names
39923992

3993-
levels, labels, names = (
3993+
levels, codes, names = (
39943994
_restore_dropped_levels_multijoin(self, other,
39953995
dropped_names,
39963996
join_idx,
39973997
lidx, ridx))
39983998

39993999
# Re-create the multi-index
4000-
multi_join_idx = MultiIndex(levels=levels, labels=labels,
4000+
multi_join_idx = MultiIndex(levels=levels, codes=codes,
40014001
names=names, verify_integrity=False)
40024002

40034003
multi_join_idx = multi_join_idx.remove_unused_levels()
@@ -4114,34 +4114,34 @@ def _get_leaf_sorter(labels):
41144114
rev_indexer = lib.get_reverse_indexer(left_lev_indexer,
41154115
len(old_level))
41164116

4117-
new_lev_labels = algos.take_nd(rev_indexer, left.codes[level],
4118-
allow_fill=False)
4117+
new_level_codes = algos.take_nd(rev_indexer, left.codes[level],
4118+
allow_fill=False)
41194119

41204120
new_codes = list(left.codes)
4121-
new_codes[level] = new_lev_labels
4121+
new_codes[level] = new_level_codes
41224122

41234123
new_levels = list(left.levels)
41244124
new_levels[level] = new_level
41254125

41264126
if keep_order: # just drop missing values. o.w. keep order
41274127
left_indexer = np.arange(len(left), dtype=np.intp)
4128-
mask = new_lev_labels != -1
4128+
mask = new_level_codes != -1
41294129
if not mask.all():
41304130
new_codes = [lab[mask] for lab in new_codes]
41314131
left_indexer = left_indexer[mask]
41324132

41334133
else: # tie out the order with other
41344134
if level == 0: # outer most level, take the fast route
4135-
ngroups = 1 + new_lev_labels.max()
4135+
ngroups = 1 + new_level_codes.max()
41364136
left_indexer, counts = libalgos.groupsort_indexer(
4137-
new_lev_labels, ngroups)
4137+
new_level_codes, ngroups)
41384138

41394139
# missing values are placed first; drop them!
41404140
left_indexer = left_indexer[counts[0]:]
41414141
new_codes = [lab[left_indexer] for lab in new_codes]
41424142

41434143
else: # sort the leaves
4144-
mask = new_lev_labels != -1
4144+
mask = new_level_codes != -1
41454145
mask_all = mask.all()
41464146
if not mask_all:
41474147
new_codes = [lab[mask] for lab in new_codes]

0 commit comments

Comments
 (0)