Skip to content

Commit cced90b

Browse files
committed
various changes
1 parent 1f23ba5 commit cced90b

File tree

10 files changed

+160
-121
lines changed

10 files changed

+160
-121
lines changed

doc/source/whatsnew/v0.24.0.rst

+8
Original file line numberDiff line numberDiff line change
@@ -1022,6 +1022,14 @@ Other API Changes
10221022
Deprecations
10231023
~~~~~~~~~~~~
10241024

1025+
- :attr:`MultiIndex.labels` has been deprecated and replaced by :attr:`MultiIndex.codes`.
1026+
The functionality is unchanged. This new name better reflects the natures of
1027+
these codes and makes the API more similar to the API for
1028+
:class:`CategoricalIndex`(:issue:`13443`).
1029+
As a concequence, other uses of the name ``labels`` have also been deprecated in ``MultiIndex`` and replaced with ``codes``:
1030+
- You should initialize a MultiIndex instance using a parameter named ``codes`` rather than ``labels``.
1031+
- :meth:`MultiIndex.set_labels` has been deprecated in favor of :meth:`MultiIndex.set_codes`
1032+
- for method :meth:`MultiIndex.copy`, the ``labels`` parameter has been deprecated and replaced by a ``codes`` parameter.
10251033
- :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`)
10261034
- :meth:`MultiIndex.to_hierarchical` is deprecated and will be removed in a future version (:issue:`21613`)
10271035
- :meth:`Series.ptp` is deprecated. Use ``numpy.ptp`` instead (:issue:`21614`)

pandas/core/indexes/base.py

+10-10
Original file line numberDiff line numberDiff line change
@@ -3999,14 +3999,14 @@ def _join_multi(self, other, how, return_indexers=True):
39993999
# common levels, ldrop_names, rdrop_names
40004000
dropped_names = ldrop_names + rdrop_names
40014001

4002-
levels, labels, names = (
4002+
levels, codes, names = (
40034003
_restore_dropped_levels_multijoin(self, other,
40044004
dropped_names,
40054005
join_idx,
40064006
lidx, ridx))
40074007

40084008
# Re-create the multi-index
4009-
multi_join_idx = MultiIndex(levels=levels, labels=labels,
4009+
multi_join_idx = MultiIndex(levels=levels, codes=codes,
40104010
names=names, verify_integrity=False)
40114011

40124012
multi_join_idx = multi_join_idx.remove_unused_levels()
@@ -4123,34 +4123,34 @@ def _get_leaf_sorter(labels):
41234123
rev_indexer = lib.get_reverse_indexer(left_lev_indexer,
41244124
len(old_level))
41254125

4126-
new_lev_labels = algos.take_nd(rev_indexer, left.codes[level],
4127-
allow_fill=False)
4126+
new_level_codes = algos.take_nd(rev_indexer, left.codes[level],
4127+
allow_fill=False)
41284128

41294129
new_codes = list(left.codes)
4130-
new_codes[level] = new_lev_labels
4130+
new_codes[level] = new_level_codes
41314131

41324132
new_levels = list(left.levels)
41334133
new_levels[level] = new_level
41344134

41354135
if keep_order: # just drop missing values. o.w. keep order
41364136
left_indexer = np.arange(len(left), dtype=np.intp)
4137-
mask = new_lev_labels != -1
4137+
mask = new_level_codes != -1
41384138
if not mask.all():
4139-
new_codes = [lab[mask] for lab in new_codes]
4139+
new_codes = [codes_[mask] for codes_ in new_codes]
41404140
left_indexer = left_indexer[mask]
41414141

41424142
else: # tie out the order with other
41434143
if level == 0: # outer most level, take the fast route
4144-
ngroups = 1 + new_lev_labels.max()
4144+
ngroups = 1 + new_level_codes.max()
41454145
left_indexer, counts = libalgos.groupsort_indexer(
4146-
new_lev_labels, ngroups)
4146+
new_level_codes, ngroups)
41474147

41484148
# missing values are placed first; drop them!
41494149
left_indexer = left_indexer[counts[0]:]
41504150
new_codes = [lab[left_indexer] for lab in new_codes]
41514151

41524152
else: # sort the leaves
4153-
mask = new_lev_labels != -1
4153+
mask = new_level_codes != -1
41544154
mask_all = mask.all()
41554155
if not mask_all:
41564156
new_codes = [lab[mask] for lab in new_codes]

0 commit comments

Comments
 (0)