Skip to content

Commit eb6f8d3

Browse files
authored
test_droplevel (#32272)
1 parent 97c0ce9 commit eb6f8d3

File tree

4 files changed

+42
-32
lines changed

4 files changed

+42
-32
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from pandas import DataFrame, Index, MultiIndex
2+
import pandas._testing as tm
3+
4+
5+
class TestDropLevel:
6+
def test_droplevel(self):
7+
# GH#20342
8+
df = DataFrame([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
9+
df = df.set_index([0, 1]).rename_axis(["a", "b"])
10+
df.columns = MultiIndex.from_tuples(
11+
[("c", "e"), ("d", "f")], names=["level_1", "level_2"]
12+
)
13+
14+
# test that dropping of a level in index works
15+
expected = df.reset_index("a", drop=True)
16+
result = df.droplevel("a", axis="index")
17+
tm.assert_frame_equal(result, expected)
18+
19+
# test that dropping of a level in columns works
20+
expected = df.copy()
21+
expected.columns = Index(["c", "d"], name="level_1")
22+
result = df.droplevel("level_2", axis="columns")
23+
tm.assert_frame_equal(result, expected)

pandas/tests/frame/test_alter_axes.py

-19
Original file line numberDiff line numberDiff line change
@@ -840,25 +840,6 @@ def test_reindex_signature(self):
840840
"tolerance",
841841
}
842842

843-
def test_droplevel(self):
844-
# GH20342
845-
df = DataFrame([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
846-
df = df.set_index([0, 1]).rename_axis(["a", "b"])
847-
df.columns = MultiIndex.from_tuples(
848-
[("c", "e"), ("d", "f")], names=["level_1", "level_2"]
849-
)
850-
851-
# test that dropping of a level in index works
852-
expected = df.reset_index("a", drop=True)
853-
result = df.droplevel("a", axis="index")
854-
tm.assert_frame_equal(result, expected)
855-
856-
# test that dropping of a level in columns works
857-
expected = df.copy()
858-
expected.columns = Index(["c", "d"], name="level_1")
859-
result = df.droplevel("level_2", axis="columns")
860-
tm.assert_frame_equal(result, expected)
861-
862843

863844
class TestIntervalIndex:
864845
def test_setitem(self):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import pytest
2+
3+
from pandas import MultiIndex, Series
4+
import pandas._testing as tm
5+
6+
7+
class TestDropLevel:
8+
def test_droplevel(self):
9+
# GH#20342
10+
ser = Series([1, 2, 3, 4])
11+
ser.index = MultiIndex.from_arrays(
12+
[(1, 2, 3, 4), (5, 6, 7, 8)], names=["a", "b"]
13+
)
14+
expected = ser.reset_index("b", drop=True)
15+
result = ser.droplevel("b", axis="index")
16+
tm.assert_series_equal(result, expected)
17+
# test that droplevel raises ValueError on axis != 0
18+
with pytest.raises(ValueError):
19+
ser.droplevel(1, axis="columns")

pandas/tests/series/test_alter_axes.py

-13
Original file line numberDiff line numberDiff line change
@@ -152,16 +152,3 @@ def test_set_axis_inplace(self):
152152
for axis in [2, "foo"]:
153153
with pytest.raises(ValueError, match="No axis named"):
154154
s.set_axis(list("abcd"), axis=axis, inplace=False)
155-
156-
def test_droplevel(self):
157-
# GH20342
158-
ser = Series([1, 2, 3, 4])
159-
ser.index = MultiIndex.from_arrays(
160-
[(1, 2, 3, 4), (5, 6, 7, 8)], names=["a", "b"]
161-
)
162-
expected = ser.reset_index("b", drop=True)
163-
result = ser.droplevel("b", axis="index")
164-
tm.assert_series_equal(result, expected)
165-
# test that droplevel raises ValueError on axis != 0
166-
with pytest.raises(ValueError):
167-
ser.droplevel(1, axis="columns")

0 commit comments

Comments
 (0)