Skip to content

Commit

Permalink
Only calculate observed_grouper when grouper is absent to account to …
Browse files Browse the repository at this point in the history
…edge agg cases
  • Loading branch information
Kei committed Apr 20, 2024
1 parent 30013ee commit 3b9d27b
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions pandas/core/groupby/groupby.py
Original file line number Diff line number Diff line change
Expand Up @@ -1122,7 +1122,21 @@ def __init__(
self.group_keys = group_keys
self.dropna = dropna

orig_obj = obj
if not observed and grouper is None:
observed_grouper, observed_exclusions, _ = get_grouper(
obj,
self.keys,
level=self.level,
sort=self.sort,
observed=True,
dropna=self.dropna,
)

self.observed_grouper = observed_grouper
self.observed_exclusions = (
frozenset(observed_exclusions) if observed_exclusions else frozenset()
)

if grouper is None:
grouper, exclusions, obj = get_grouper(
obj,
Expand All @@ -1138,21 +1152,6 @@ def __init__(
self._grouper = grouper
self.exclusions = frozenset(exclusions) if exclusions else frozenset()

if not observed and observed_grouper is None:
observed_grouper, observed_exclusions, _ = get_grouper(
orig_obj,
self.keys,
level=self.level,
sort=self.sort,
observed=True,
dropna=self.dropna,
)

self.observed_grouper = observed_grouper
self.observed_exclusions = (
frozenset(observed_exclusions) if observed_exclusions else frozenset()
)

def __getattr__(self, attr: str):
if attr in self._internal_names_set:
return object.__getattribute__(self, attr)
Expand Down

0 comments on commit 3b9d27b

Please sign in to comment.