test_series_apply_relabeling.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. import pandas as pd
  2. import pandas._testing as tm
  3. def test_relabel_no_duplicated_method():
  4. # this is to test there is no duplicated method used in agg
  5. df = pd.DataFrame({"A": [1, 2, 1, 2], "B": [1, 2, 3, 4]})
  6. result = df["A"].agg(foo="sum")
  7. expected = df["A"].agg({"foo": "sum"})
  8. tm.assert_series_equal(result, expected)
  9. result = df["B"].agg(foo="min", bar="max")
  10. expected = df["B"].agg({"foo": "min", "bar": "max"})
  11. tm.assert_series_equal(result, expected)
  12. result = df["B"].agg(foo=sum, bar=min, cat="max")
  13. expected = df["B"].agg({"foo": sum, "bar": min, "cat": "max"})
  14. tm.assert_series_equal(result, expected)
  15. def test_relabel_duplicated_method():
  16. # this is to test with nested renaming, duplicated method can be used
  17. # if they are assigned with different new names
  18. df = pd.DataFrame({"A": [1, 2, 1, 2], "B": [1, 2, 3, 4]})
  19. result = df["A"].agg(foo="sum", bar="sum")
  20. expected = pd.Series([6, 6], index=["foo", "bar"], name="A")
  21. tm.assert_series_equal(result, expected)
  22. result = df["B"].agg(foo=min, bar="min")
  23. expected = pd.Series([1, 1], index=["foo", "bar"], name="B")
  24. tm.assert_series_equal(result, expected)