Skip to content

Commit c8db9b9

Browse files
authored
TST: added test for GH28597 (#33588)
1 parent bf37b5f commit c8db9b9

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

pandas/tests/groupby/test_categorical.py

+45
Original file line numberDiff line numberDiff line change
@@ -1392,3 +1392,48 @@ def test_read_only_category_no_sort():
13921392
expected = DataFrame(data={"a": [2, 6]}, index=CategoricalIndex([1, 2], name="b"))
13931393
result = df.groupby("b", sort=False).mean()
13941394
tm.assert_frame_equal(result, expected)
1395+
1396+
1397+
def test_sorted_missing_category_values():
1398+
# GH 28597
1399+
df = pd.DataFrame(
1400+
{
1401+
"foo": [
1402+
"small",
1403+
"large",
1404+
"large",
1405+
"large",
1406+
"medium",
1407+
"large",
1408+
"large",
1409+
"medium",
1410+
],
1411+
"bar": ["C", "A", "A", "C", "A", "C", "A", "C"],
1412+
}
1413+
)
1414+
df["foo"] = (
1415+
df["foo"]
1416+
.astype("category")
1417+
.cat.set_categories(["tiny", "small", "medium", "large"], ordered=True)
1418+
)
1419+
1420+
expected = pd.DataFrame(
1421+
{
1422+
"tiny": {"A": 0, "C": 0},
1423+
"small": {"A": 0, "C": 1},
1424+
"medium": {"A": 1, "C": 1},
1425+
"large": {"A": 3, "C": 2},
1426+
}
1427+
)
1428+
expected = expected.rename_axis("bar", axis="index")
1429+
expected.columns = pd.CategoricalIndex(
1430+
["tiny", "small", "medium", "large"],
1431+
categories=["tiny", "small", "medium", "large"],
1432+
ordered=True,
1433+
name="foo",
1434+
dtype="category",
1435+
)
1436+
1437+
result = df.groupby(["bar", "foo"]).size().unstack()
1438+
1439+
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)