I have confirmed this bug exists on the master branch of pandas.

# Your code here
ser = pd.Series([1., 1., 1., 1.])
cat = pd.Categorical(['a', 'b', 'c', np.nan])
print(ser.groupby(cat, dropna=False).sum())
# output:
a    1.0
b    1.0
c    1.0
dtype: float64

Expected Output

a    1.0
b    1.0
c    1.0
NaN  1.0
dtype: float64

Output of pd.show_versions()

INSTALLED VERSIONS ------------------ commit : 2a7d3326dee660824a8433ffd01065f8ac37f7d6 python : 3.7.6.final.0 python-bits : 64 OS : Windows OS-release : 10 Version : 10.0.18362 machine : AMD64 processor : Intel64 Family 6 Model 158 Stepping 13, GenuineIntel byteorder : little LC_ALL : None LANG : None LOCALE : None.None pandas : 1.1.2 numpy : 1.18.1 pytz : 2019.3 dateutil : 2.8.1 pip : 20.0.2 setuptools : 45.2.0.post20200210 Cython : 0.29.15 pytest : 5.3.5 hypothesis : 5.5.4 sphinx : 2.4.0 blosc : None feather : None xlsxwriter : 1.2.7 lxml.etree : 4.5.0 html5lib : 1.0.1 pymysql : 0.9.3 psycopg2 : None jinja2 : 2.11.1 IPython : 7.12.0 pandas_datareader: None bs4 : 4.8.2 bottleneck : 1.3.2 fsspec : 0.6.2 fastparquet : None gcsfs : None matplotlib : 3.1.3 numexpr : 2.7.1 odfpy : None openpyxl : 3.0.3 pandas_gbq : None pyarrow : None pytables : None pyxlsb : None s3fs : None scipy : 1.4.1 sqlalchemy : 1.3.13 tables : 3.6.1 tabulate : None xarray : None xlrd : 1.2.0 xlwt : 1.3.0 numba : 0.48.0

Comment From: phofl

Hey,

have you checked #35646? This looks like a duplicate

Comment From: FenderJazz

It looks different from #35646 to me -- is specifically about categoricals, and happens with >1 groupby columns?

Your code here

```ser = pd.Series([1., 1., 1., 1.])

cat = pd.Categorical(['a', 'b', 'c', np.nan]) df = pd.DataFrame({'ser': ser, 'var1': cat, 'var2': cat}) print(df.groupby(['var1', 'var2'], observed=True, dropna=False).sum())

Same but not categorical

noncat = pd.Series(['a', 'b', 'c', np.nan]) df = pd.DataFrame({'ser': ser, 'var1': noncat, 'var2': noncat}) print(df.groupby(['var1', 'var2'], observed=True, dropna=False).sum())


# Output
```           ser
var1 var2     
a    a     1.0
b    b     1.0
c    c     1.0
           ser
var1 var2     
a    a     1.0
b    b     1.0
c    c     1.0
NaN  NaN   1.0

Expected output

var1 var2     
a    a     1.0
b    b     1.0
c    c     1.0
NaN  NaN   1.0
           ser
var1 var2     
a    a     1.0
b    b     1.0
c    c     1.0
NaN  NaN   1.0

Comment From: timstaley

Just a +1 report of hitting this issue, still present on 1.2.0rc0

Comment From: rhshadrach

Thanks for the report! Further investigations and PRs to fix are welcome.