test_rename_axis.py 1.5 KB

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