diff --git a/pandas/tests/indexing/test_at.py b/pandas/tests/indexing/test_at.py index c721ba2e6daad..fbf33999386e6 100644 --- a/pandas/tests/indexing/test_at.py +++ b/pandas/tests/indexing/test_at.py @@ -3,7 +3,7 @@ import numpy as np import pytest -from pandas import DataFrame, Series, Timestamp +from pandas import CategoricalDtype, DataFrame, Series, Timestamp import pandas._testing as tm @@ -26,6 +26,23 @@ def test_at_setitem_mixed_index_assignment(self): ser.at[1] = 22 assert ser.iat[3] == 22 + def test_at_setitem_categorical_missing(self): + df = DataFrame( + index=range(3), columns=range(3), dtype=CategoricalDtype(["foo", "bar"]) + ) + df.at[1, 1] = "foo" + + expected = DataFrame( + [ + [np.nan, np.nan, np.nan], + [np.nan, "foo", np.nan], + [np.nan, np.nan, np.nan], + ], + dtype=CategoricalDtype(["foo", "bar"]), + ) + + tm.assert_frame_equal(df, expected) + class TestAtSetItemWithExpansion: def test_at_setitem_expansion_series_dt64tz_value(self, tz_naive_fixture):