| 38 | obj.rename(str.lower) |
| 39 | |
| 40 | def test_rename(self, float_frame): |
| 41 | mapping = {"A": "a", "B": "b", "C": "c", "D": "d"} |
| 42 | |
| 43 | renamed = float_frame.rename(columns=mapping) |
| 44 | renamed2 = float_frame.rename(columns=str.lower) |
| 45 | |
| 46 | tm.assert_frame_equal(renamed, renamed2) |
| 47 | tm.assert_frame_equal( |
| 48 | renamed2.rename(columns=str.upper), float_frame, check_names=False |
| 49 | ) |
| 50 | |
| 51 | # index |
| 52 | data = {"A": {"foo": 0, "bar": 1}} |
| 53 | |
| 54 | df = DataFrame(data) |
| 55 | renamed = df.rename(index={"foo": "bar", "bar": "foo"}) |
| 56 | tm.assert_index_equal(renamed.index, Index(["bar", "foo"])) |
| 57 | |
| 58 | renamed = df.rename(index=str.upper) |
| 59 | tm.assert_index_equal(renamed.index, Index(["FOO", "BAR"])) |
| 60 | |
| 61 | # have to pass something |
| 62 | with pytest.raises(TypeError, match="must pass an index to rename"): |
| 63 | float_frame.rename() |
| 64 | |
| 65 | # partial columns |
| 66 | renamed = float_frame.rename(columns={"C": "foo", "D": "bar"}) |
| 67 | tm.assert_index_equal(renamed.columns, Index(["A", "B", "foo", "bar"])) |
| 68 | |
| 69 | # other axis |
| 70 | renamed = float_frame.T.rename(index={"C": "foo", "D": "bar"}) |
| 71 | tm.assert_index_equal(renamed.index, Index(["A", "B", "foo", "bar"])) |
| 72 | |
| 73 | # index with name |
| 74 | index = Index(["foo", "bar"], name="name") |
| 75 | renamer = DataFrame(data, index=index) |
| 76 | renamed = renamer.rename(index={"foo": "bar", "bar": "foo"}) |
| 77 | tm.assert_index_equal(renamed.index, Index(["bar", "foo"], name="name")) |
| 78 | assert renamed.index.name == renamer.index.name |
| 79 | |
| 80 | @pytest.mark.parametrize( |
| 81 | "args,kwargs", |