예제 #1
0
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)
예제 #2
0
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
예제 #4
0
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)
예제 #5
0
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
예제 #6
0
파일: test_copy.py 프로젝트: tnir/pandas
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
예제 #7
0
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
예제 #8
0
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
예제 #9
0
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