From e423c270b64a0d691f5c2a08efaee40a53b970d9 Mon Sep 17 00:00:00 2001 From: tp Date: Tue, 2 Jul 2019 13:30:16 +0100 Subject: [PATCH 1/2] CLN: simplify MultiIndex._shallow_copy --- pandas/core/indexes/multi.py | 6 +++--- pandas/tests/indexes/multi/test_equivalence.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pandas/core/indexes/multi.py b/pandas/core/indexes/multi.py index fd64f18c50b34..f9681625ac0a2 100644 --- a/pandas/core/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -924,12 +924,12 @@ def __contains__(self, key): @Appender(_index_shared_docs['_shallow_copy']) def _shallow_copy(self, values=None, **kwargs): + names = kwargs.pop('names', kwargs.pop('name', self.names)) if values is not None: - names = kwargs.pop('names', kwargs.pop('name', self.names)) # discards freq kwargs.pop('freq', None) return MultiIndex.from_tuples(values, names=names, **kwargs) - return self.view() + return self.copy(names=names, **kwargs) @cache_readonly def dtype(self): @@ -1810,7 +1810,7 @@ def remove_unused_levels(self): new_levels.append(lev) new_codes.append(level_codes) - result = self._shallow_copy() + result = self.view() if changed: result._reset_identity() diff --git a/pandas/tests/indexes/multi/test_equivalence.py b/pandas/tests/indexes/multi/test_equivalence.py index bbb821dff53d3..3bdccbb8ab38d 100644 --- a/pandas/tests/indexes/multi/test_equivalence.py +++ b/pandas/tests/indexes/multi/test_equivalence.py @@ -175,7 +175,7 @@ def test_is_(): assert mi2.is_(mi) assert mi.is_(mi2) - assert mi.is_(mi.set_names(["C", "D"])) + assert not mi.is_(mi.set_names(["C", "D"])) mi2 = mi.view() mi2.set_names(["E", "F"], inplace=True) assert mi.is_(mi2) From 2e8432386668790c6912914dda16f8d881f42cc6 Mon Sep 17 00:00:00 2001 From: tp Date: Thu, 4 Jul 2019 00:07:07 +0100 Subject: [PATCH 2/2] Don't collect names in ._shallow_copy, is done in .copy already --- pandas/core/indexes/multi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/core/indexes/multi.py b/pandas/core/indexes/multi.py index f9681625ac0a2..0823a3ed9ad59 100644 --- a/pandas/core/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -924,12 +924,12 @@ def __contains__(self, key): @Appender(_index_shared_docs['_shallow_copy']) def _shallow_copy(self, values=None, **kwargs): - names = kwargs.pop('names', kwargs.pop('name', self.names)) if values is not None: + names = kwargs.pop('names', kwargs.pop('name', self.names)) # discards freq kwargs.pop('freq', None) return MultiIndex.from_tuples(values, names=names, **kwargs) - return self.copy(names=names, **kwargs) + return self.copy(**kwargs) @cache_readonly def dtype(self):