diff --git a/pandas/core/indexes/multi.py b/pandas/core/indexes/multi.py index 6c125e17e5549..0c57b27f325d0 100644 --- a/pandas/core/indexes/multi.py +++ b/pandas/core/indexes/multi.py @@ -1270,10 +1270,10 @@ def _get_grouper_for_level(self, mapper, level): # on the output of a groupby doesn't reflect back here. level_index = level_index.copy() - if len(level_index): - grouper = level_index.take(codes) - else: + if level_index._can_hold_na: grouper = level_index.take(codes, fill_value=True) + else: + grouper = level_index.take(codes) return grouper, codes, level_index