Skip to content

Commit 24409e9

Browse files
committed
BUG: Put the checking a single-level selection from MultiIndex higher
1 parent f797a9e commit 24409e9

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

pandas/core/groupby.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -2586,6 +2586,15 @@ def _get_grouper(obj, key=None, axis=0, level=None, sort=True,
25862586
"""
25872587
group_axis = obj._get_axis(axis)
25882588

2589+
if key is None and level is not None and \
2590+
isinstance(group_axis, MultiIndex):
2591+
if is_list_like(level) and len(level) == 1:
2592+
level = level[0]
2593+
2594+
if is_scalar(level):
2595+
key = group_axis.get_level_values(level)
2596+
level = None
2597+
25892598
# validate that the passed level is compatible with the passed
25902599
# axis of the object
25912600
if level is not None:
@@ -2626,14 +2635,6 @@ def _get_grouper(obj, key=None, axis=0, level=None, sort=True,
26262635
elif isinstance(key, BaseGrouper):
26272636
return key, [], obj
26282637

2629-
if key is None and isinstance(group_axis, MultiIndex):
2630-
if is_list_like(level) and len(level) == 1:
2631-
level = level[0]
2632-
2633-
if level is not None and is_scalar(level):
2634-
key = group_axis.get_level_values(level)
2635-
level = None
2636-
26372638
if not isinstance(key, (tuple, list)):
26382639
keys = [key]
26392640
match_axis_length = False

0 commit comments

Comments
 (0)