Your question is missing the important point what g
is, especially that it has dtype categorical
. I assume it is something like this:
g = pd.Series(["A", "B", "C", np.nan], dtype="category")
The problem you are experiencing is that fillna
requires a value that already exists as a category. For instance, g.fillna("A")
would work, but g.fillna("D")
fails. To fill the series with a new value you can do:
g_without_nan = g.cat.add_categories("D").fillna("D")