Skip to content

Commit 61f42cc

Browse files
authored
REF: test_rename_axis (#33152)
1 parent 25049f3 commit 61f42cc

File tree

6 files changed

+149
-145
lines changed

6 files changed

+149
-145
lines changed

pandas/tests/frame/methods/test_rename.py

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,30 +67,6 @@ def test_rename_chainmap(self, args, kwargs):
6767
expected = DataFrame({"a": colAData, "b": colBdata})
6868
tm.assert_frame_equal(result, expected)
6969

70-
@pytest.mark.parametrize(
71-
"kwargs, rename_index, rename_columns",
72-
[
73-
({"mapper": None, "axis": 0}, True, False),
74-
({"mapper": None, "axis": 1}, False, True),
75-
({"index": None}, True, False),
76-
({"columns": None}, False, True),
77-
({"index": None, "columns": None}, True, True),
78-
({}, False, False),
79-
],
80-
)
81-
def test_rename_axis_none(self, kwargs, rename_index, rename_columns):
82-
# GH 25034
83-
index = Index(list("abc"), name="foo")
84-
columns = Index(["col1", "col2"], name="bar")
85-
data = np.arange(6).reshape(3, 2)
86-
df = DataFrame(data, index, columns)
87-
88-
result = df.rename_axis(**kwargs)
89-
expected_index = index.rename(None) if rename_index else index
90-
expected_columns = columns.rename(None) if rename_columns else columns
91-
expected = DataFrame(data, expected_index, expected_columns)
92-
tm.assert_frame_equal(result, expected)
93-
9470
def test_rename_multiindex(self):
9571

9672
tuples_index = [("foo1", "bar1"), ("foo2", "bar2")]
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
import numpy as np
2+
import pytest
3+
4+
from pandas import DataFrame, Index, MultiIndex
5+
import pandas._testing as tm
6+
7+
8+
class TestDataFrameRenameAxis:
9+
def test_rename_axis_inplace(self, float_frame):
10+
# GH#15704
11+
expected = float_frame.rename_axis("foo")
12+
result = float_frame.copy()
13+
no_return = result.rename_axis("foo", inplace=True)
14+
15+
assert no_return is None
16+
tm.assert_frame_equal(result, expected)
17+
18+
expected = float_frame.rename_axis("bar", axis=1)
19+
result = float_frame.copy()
20+
no_return = result.rename_axis("bar", axis=1, inplace=True)
21+
22+
assert no_return is None
23+
tm.assert_frame_equal(result, expected)
24+
25+
def test_rename_axis_raises(self):
26+
# GH#17833
27+
df = DataFrame({"A": [1, 2], "B": [1, 2]})
28+
with pytest.raises(ValueError, match="Use `.rename`"):
29+
df.rename_axis(id, axis=0)
30+
31+
with pytest.raises(ValueError, match="Use `.rename`"):
32+
df.rename_axis({0: 10, 1: 20}, axis=0)
33+
34+
with pytest.raises(ValueError, match="Use `.rename`"):
35+
df.rename_axis(id, axis=1)
36+
37+
with pytest.raises(ValueError, match="Use `.rename`"):
38+
df["A"].rename_axis(id)
39+
40+
def test_rename_axis_mapper(self):
41+
# GH#19978
42+
mi = MultiIndex.from_product([["a", "b", "c"], [1, 2]], names=["ll", "nn"])
43+
df = DataFrame(
44+
{"x": list(range(len(mi))), "y": [i * 10 for i in range(len(mi))]}, index=mi
45+
)
46+
47+
# Test for rename of the Index object of columns
48+
result = df.rename_axis("cols", axis=1)
49+
tm.assert_index_equal(result.columns, Index(["x", "y"], name="cols"))
50+
51+
# Test for rename of the Index object of columns using dict
52+
result = result.rename_axis(columns={"cols": "new"}, axis=1)
53+
tm.assert_index_equal(result.columns, Index(["x", "y"], name="new"))
54+
55+
# Test for renaming index using dict
56+
result = df.rename_axis(index={"ll": "foo"})
57+
assert result.index.names == ["foo", "nn"]
58+
59+
# Test for renaming index using a function
60+
result = df.rename_axis(index=str.upper, axis=0)
61+
assert result.index.names == ["LL", "NN"]
62+
63+
# Test for renaming index providing complete list
64+
result = df.rename_axis(index=["foo", "goo"])
65+
assert result.index.names == ["foo", "goo"]
66+
67+
# Test for changing index and columns at same time
68+
sdf = df.reset_index().set_index("nn").drop(columns=["ll", "y"])
69+
result = sdf.rename_axis(index="foo", columns="meh")
70+
assert result.index.name == "foo"
71+
assert result.columns.name == "meh"
72+
73+
# Test different error cases
74+
with pytest.raises(TypeError, match="Must pass"):
75+
df.rename_axis(index="wrong")
76+
77+
with pytest.raises(ValueError, match="Length of names"):
78+
df.rename_axis(index=["wrong"])
79+
80+
with pytest.raises(TypeError, match="bogus"):
81+
df.rename_axis(bogus=None)
82+
83+
@pytest.mark.parametrize(
84+
"kwargs, rename_index, rename_columns",
85+
[
86+
({"mapper": None, "axis": 0}, True, False),
87+
({"mapper": None, "axis": 1}, False, True),
88+
({"index": None}, True, False),
89+
({"columns": None}, False, True),
90+
({"index": None, "columns": None}, True, True),
91+
({}, False, False),
92+
],
93+
)
94+
def test_rename_axis_none(self, kwargs, rename_index, rename_columns):
95+
# GH 25034
96+
index = Index(list("abc"), name="foo")
97+
columns = Index(["col1", "col2"], name="bar")
98+
data = np.arange(6).reshape(3, 2)
99+
df = DataFrame(data, index, columns)
100+
101+
result = df.rename_axis(**kwargs)
102+
expected_index = index.rename(None) if rename_index else index
103+
expected_columns = columns.rename(None) if rename_columns else columns
104+
expected = DataFrame(data, expected_index, expected_columns)
105+
tm.assert_frame_equal(result, expected)

pandas/tests/frame/test_alter_axes.py

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -615,80 +615,6 @@ def test_dti_set_index_reindex(self):
615615

616616
# Renaming
617617

618-
def test_rename_axis_inplace(self, float_frame):
619-
# GH 15704
620-
expected = float_frame.rename_axis("foo")
621-
result = float_frame.copy()
622-
no_return = result.rename_axis("foo", inplace=True)
623-
624-
assert no_return is None
625-
tm.assert_frame_equal(result, expected)
626-
627-
expected = float_frame.rename_axis("bar", axis=1)
628-
result = float_frame.copy()
629-
no_return = result.rename_axis("bar", axis=1, inplace=True)
630-
631-
assert no_return is None
632-
tm.assert_frame_equal(result, expected)
633-
634-
def test_rename_axis_raises(self):
635-
# https://github.com/pandas-dev/pandas/issues/17833
636-
df = DataFrame({"A": [1, 2], "B": [1, 2]})
637-
with pytest.raises(ValueError, match="Use `.rename`"):
638-
df.rename_axis(id, axis=0)
639-
640-
with pytest.raises(ValueError, match="Use `.rename`"):
641-
df.rename_axis({0: 10, 1: 20}, axis=0)
642-
643-
with pytest.raises(ValueError, match="Use `.rename`"):
644-
df.rename_axis(id, axis=1)
645-
646-
with pytest.raises(ValueError, match="Use `.rename`"):
647-
df["A"].rename_axis(id)
648-
649-
def test_rename_axis_mapper(self):
650-
# GH 19978
651-
mi = MultiIndex.from_product([["a", "b", "c"], [1, 2]], names=["ll", "nn"])
652-
df = DataFrame(
653-
{"x": list(range(len(mi))), "y": [i * 10 for i in range(len(mi))]}, index=mi
654-
)
655-
656-
# Test for rename of the Index object of columns
657-
result = df.rename_axis("cols", axis=1)
658-
tm.assert_index_equal(result.columns, Index(["x", "y"], name="cols"))
659-
660-
# Test for rename of the Index object of columns using dict
661-
result = result.rename_axis(columns={"cols": "new"}, axis=1)
662-
tm.assert_index_equal(result.columns, Index(["x", "y"], name="new"))
663-
664-
# Test for renaming index using dict
665-
result = df.rename_axis(index={"ll": "foo"})
666-
assert result.index.names == ["foo", "nn"]
667-
668-
# Test for renaming index using a function
669-
result = df.rename_axis(index=str.upper, axis=0)
670-
assert result.index.names == ["LL", "NN"]
671-
672-
# Test for renaming index providing complete list
673-
result = df.rename_axis(index=["foo", "goo"])
674-
assert result.index.names == ["foo", "goo"]
675-
676-
# Test for changing index and columns at same time
677-
sdf = df.reset_index().set_index("nn").drop(columns=["ll", "y"])
678-
result = sdf.rename_axis(index="foo", columns="meh")
679-
assert result.index.name == "foo"
680-
assert result.columns.name == "meh"
681-
682-
# Test different error cases
683-
with pytest.raises(TypeError, match="Must pass"):
684-
df.rename_axis(index="wrong")
685-
686-
with pytest.raises(ValueError, match="Length of names"):
687-
df.rename_axis(index=["wrong"])
688-
689-
with pytest.raises(TypeError, match="bogus"):
690-
df.rename_axis(bogus=None)
691-
692618
def test_set_index_names(self):
693619
df = tm.makeDataFrame()
694620
df.index.name = "name"

pandas/tests/generic/test_series.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,6 @@ def test_rename_mi(self):
2121
)
2222
s.rename(str.lower)
2323

24-
@pytest.mark.parametrize("func", ["rename_axis", "_set_axis_name"])
25-
def test_set_axis_name(self, func):
26-
s = Series([1, 2, 3], index=["a", "b", "c"])
27-
name = "foo"
28-
29-
result = methodcaller(func, name)(s)
30-
assert s.index.name is None
31-
assert result.index.name == name
32-
3324
@pytest.mark.parametrize("func", ["rename_axis", "_set_axis_name"])
3425
def test_set_axis_name_mi(self, func):
3526
s = Series(
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import pytest
2+
3+
from pandas import Index, MultiIndex, Series
4+
import pandas._testing as tm
5+
6+
7+
class TestSeriesRenameAxis:
8+
def test_rename_axis_mapper(self):
9+
# GH 19978
10+
mi = MultiIndex.from_product([["a", "b", "c"], [1, 2]], names=["ll", "nn"])
11+
ser = Series(list(range(len(mi))), index=mi)
12+
13+
result = ser.rename_axis(index={"ll": "foo"})
14+
assert result.index.names == ["foo", "nn"]
15+
16+
result = ser.rename_axis(index=str.upper, axis=0)
17+
assert result.index.names == ["LL", "NN"]
18+
19+
result = ser.rename_axis(index=["foo", "goo"])
20+
assert result.index.names == ["foo", "goo"]
21+
22+
with pytest.raises(TypeError, match="unexpected"):
23+
ser.rename_axis(columns="wrong")
24+
25+
def test_rename_axis_inplace(self, datetime_series):
26+
# GH 15704
27+
expected = datetime_series.rename_axis("foo")
28+
result = datetime_series
29+
no_return = result.rename_axis("foo", inplace=True)
30+
31+
assert no_return is None
32+
tm.assert_series_equal(result, expected)
33+
34+
@pytest.mark.parametrize("kwargs", [{"mapper": None}, {"index": None}, {}])
35+
def test_rename_axis_none(self, kwargs):
36+
# GH 25034
37+
index = Index(list("abc"), name="foo")
38+
ser = Series([1, 2, 3], index=index)
39+
40+
result = ser.rename_axis(**kwargs)
41+
expected_index = index.rename(None) if kwargs else index
42+
expected = Series([1, 2, 3], index=expected_index)
43+
tm.assert_series_equal(result, expected)

pandas/tests/series/test_alter_axes.py

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import numpy as np
44
import pytest
55

6-
from pandas import Index, MultiIndex, Series
6+
from pandas import Index, Series
77
import pandas._testing as tm
88

99

@@ -54,43 +54,6 @@ def test_set_index_makes_timeseries(self):
5454
s.index = idx
5555
assert s.index.is_all_dates
5656

57-
def test_rename_axis_mapper(self):
58-
# GH 19978
59-
mi = MultiIndex.from_product([["a", "b", "c"], [1, 2]], names=["ll", "nn"])
60-
s = Series(list(range(len(mi))), index=mi)
61-
62-
result = s.rename_axis(index={"ll": "foo"})
63-
assert result.index.names == ["foo", "nn"]
64-
65-
result = s.rename_axis(index=str.upper, axis=0)
66-
assert result.index.names == ["LL", "NN"]
67-
68-
result = s.rename_axis(index=["foo", "goo"])
69-
assert result.index.names == ["foo", "goo"]
70-
71-
with pytest.raises(TypeError, match="unexpected"):
72-
s.rename_axis(columns="wrong")
73-
74-
def test_rename_axis_inplace(self, datetime_series):
75-
# GH 15704
76-
expected = datetime_series.rename_axis("foo")
77-
result = datetime_series
78-
no_return = result.rename_axis("foo", inplace=True)
79-
80-
assert no_return is None
81-
tm.assert_series_equal(result, expected)
82-
83-
@pytest.mark.parametrize("kwargs", [{"mapper": None}, {"index": None}, {}])
84-
def test_rename_axis_none(self, kwargs):
85-
# GH 25034
86-
index = Index(list("abc"), name="foo")
87-
df = Series([1, 2, 3], index=index)
88-
89-
result = df.rename_axis(**kwargs)
90-
expected_index = index.rename(None) if kwargs else index
91-
expected = Series([1, 2, 3], index=expected_index)
92-
tm.assert_series_equal(result, expected)
93-
9457
def test_set_axis_inplace_axes(self, axis_series):
9558
# GH14636
9659
ser = Series(np.arange(4), index=[1, 3, 5, 7], dtype="int64")

0 commit comments

Comments
 (0)