@@ -2945,3 +2945,23 @@ def test_decimal_na_sort(test_series):
2945
2945
result = gb ._grouper .result_index
2946
2946
expected = Index ([Decimal (1 ), None ], name = "key" )
2947
2947
tm .assert_index_equal (result , expected )
2948
+
2949
+
2950
+ def test_groupby_dropna_with_nunique_unique ():
2951
+ # GH#42016
2952
+ df = [[1 , 1 , 1 , "A" ], [1 , None , 1 , "A" ], [1 , None , 2 , "A" ], [1 , None , 3 , "A" ]]
2953
+ df_dropna = DataFrame (df , columns = ["a" , "b" , "c" , "partner" ])
2954
+ result = df_dropna .groupby (["a" , "b" , "c" ], dropna = False ).agg (
2955
+ {"partner" : ["nunique" , "unique" ]}
2956
+ )
2957
+
2958
+ index = MultiIndex .from_tuples (
2959
+ [(1 , 1.0 , 1 ), (1 , np .nan , 1 ), (1 , np .nan , 2 ), (1 , np .nan , 3 )],
2960
+ names = ["a" , "b" , "c" ],
2961
+ )
2962
+ columns = MultiIndex .from_tuples ([("partner" , "nunique" ), ("partner" , "unique" )])
2963
+ expected = DataFrame (
2964
+ [(1 , ["A" ]), (1 , ["A" ]), (1 , ["A" ]), (1 , ["A" ])], index = index , columns = columns
2965
+ )
2966
+
2967
+ tm .assert_frame_equal (result , expected )
0 commit comments