def test_copy_method(deep): idx = MultiIndex( levels=[["foo", "bar"], ["fizz", "buzz"]], codes=[[0, 0, 0, 1], [0, 0, 1, 1]], names=["first", "second"], ) idx_copy = idx.copy(deep=deep) assert idx_copy.equals(idx)
def test_copy_method(deep): idx = MultiIndex( levels=[['foo', 'bar'], ['fizz', 'buzz']], labels=[[0, 0, 0, 1], [0, 0, 1, 1]], names=['first', 'second'] ) idx_copy = idx.copy(deep=deep) assert idx_copy.equals(idx)
def remove_constant_levels(index: pd.MultiIndex) -> pd.MultiIndex: index = index.copy() levels = index.names for level in levels: if len(index.get_level_values( level).unique()) == 1 and level not in WHITELISTED_LEVELS: index = index.droplevel(level=level) return index
def test_copy_method_kwargs(deep, kwarg, value): # gh-12309: Check that the "name" argument as well other kwargs are honored idx = MultiIndex( levels=[["foo", "bar"], ["fizz", "buzz"]], codes=[[0, 0, 0, 1], [0, 0, 1, 1]], names=["first", "second"], ) idx_copy = idx.copy(**{kwarg: value, "deep": deep}) assert getattr(idx_copy, kwarg) == value
def test_copy_deep_false_retains_id(): # GH#47878 idx = MultiIndex( levels=[["foo", "bar"], ["fizz", "buzz"]], codes=[[0, 0, 0, 1], [0, 0, 1, 1]], names=["first", "second"], ) res = idx.copy(deep=False) assert res._id is idx._id
def test_copy_deprecated_parameters(deep, param_name, param_value): # gh-36685 idx = MultiIndex( levels=[["foo", "bar"], ["fizz", "buzz"]], codes=[[0, 0, 0, 1], [0, 0, 1, 1]], names=["first", "second"], ) with tm.assert_produces_warning(FutureWarning): idx_copy = idx.copy(deep=deep, **{param_name: param_value}) assert [list(i) for i in getattr(idx_copy, param_name)] == param_value
def test_copy_method_kwargs(deep, kwarg, value): # gh-12309: Check that the "name" argument as well other kwargs are honored idx = MultiIndex(levels=[['foo', 'bar'], ['fizz', 'buzz']], labels=[[0, 0, 0, 1], [0, 0, 1, 1]], names=['first', 'second']) idx_copy = idx.copy(**{kwarg: value, 'deep': deep}) if kwarg == 'names': assert getattr(idx_copy, kwarg) == value else: assert [list(i) for i in getattr(idx_copy, kwarg)] == value
def test_copy_method_kwargs(deep, kwarg, value): # gh-12309: Check that the "name" argument as well other kwargs are honored idx = MultiIndex( levels=[['foo', 'bar'], ['fizz', 'buzz']], labels=[[0, 0, 0, 1], [0, 0, 1, 1]], names=['first', 'second'] ) idx_copy = idx.copy(**{kwarg: value, 'deep': deep}) if kwarg == 'names': assert getattr(idx_copy, kwarg) == value else: assert [list(i) for i in getattr(idx_copy, kwarg)] == value