Skip to content

Commit 6602c97

Browse files
committed
various changes
1 parent 0ab9413 commit 6602c97

File tree

10 files changed

+160
-121
lines changed

10 files changed

+160
-121
lines changed

doc/source/whatsnew/v0.24.0.rst

Lines changed: 8 additions & 0 deletions
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

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3974,14 +3974,14 @@ def _join_multi(self, other, how, return_indexers=True):
39743974
# common levels, ldrop_names, rdrop_names
39753975
dropped_names = ldrop_names + rdrop_names
39763976

3977-
levels, labels, names = (
3977+
levels, codes, names = (
39783978
_restore_dropped_levels_multijoin(self, other,
39793979
dropped_names,
39803980
join_idx,
39813981
lidx, ridx))
39823982

39833983
# Re-create the multi-index
3984-
multi_join_idx = MultiIndex(levels=levels, labels=labels,
3984+
multi_join_idx = MultiIndex(levels=levels, codes=codes,
39853985
names=names, verify_integrity=False)
39863986

39873987
multi_join_idx = multi_join_idx.remove_unused_levels()
@@ -4098,34 +4098,34 @@ def _get_leaf_sorter(labels):
40984098
rev_indexer = lib.get_reverse_indexer(left_lev_indexer,
40994099
len(old_level))
41004100

4101-
new_lev_labels = algos.take_nd(rev_indexer, left.codes[level],
4102-
allow_fill=False)
4101+
new_level_codes = algos.take_nd(rev_indexer, left.codes[level],
4102+
allow_fill=False)
41034103

41044104
new_codes = list(left.codes)
4105-
new_codes[level] = new_lev_labels
4105+
new_codes[level] = new_level_codes
41064106

41074107
new_levels = list(left.levels)
41084108
new_levels[level] = new_level
41094109

41104110
if keep_order: # just drop missing values. o.w. keep order
41114111
left_indexer = np.arange(len(left), dtype=np.intp)
4112-
mask = new_lev_labels != -1
4112+
mask = new_level_codes != -1
41134113
if not mask.all():
4114-
new_codes = [lab[mask] for lab in new_codes]
4114+
new_codes = [codes_[mask] for codes_ in new_codes]
41154115
left_indexer = left_indexer[mask]
41164116

41174117
else: # tie out the order with other
41184118
if level == 0: # outer most level, take the fast route
4119-
ngroups = 1 + new_lev_labels.max()
4119+
ngroups = 1 + new_level_codes.max()
41204120
left_indexer, counts = libalgos.groupsort_indexer(
4121-
new_lev_labels, ngroups)
4121+
new_level_codes, ngroups)
41224122

41234123
# missing values are placed first; drop them!
41244124
left_indexer = left_indexer[counts[0]:]
41254125
new_codes = [lab[left_indexer] for lab in new_codes]
41264126

41274127
else: # sort the leaves
4128-
mask = new_lev_labels != -1
4128+
mask = new_level_codes != -1
41294129
mask_all = mask.all()
41304130
if not mask_all:
41314131
new_codes = [lab[mask] for lab in new_codes]

0 commit comments

Comments
 (0)