Skip to content

Commit 3b9d27b

Browse files
author
Kei
committed
Only calculate observed_grouper when grouper is absent to account to edge agg cases
1 parent 30013ee commit 3b9d27b

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

pandas/core/groupby/groupby.py

+15-16
Original file line numberDiff line numberDiff line change
@@ -1122,7 +1122,21 @@ def __init__(
11221122
self.group_keys = group_keys
11231123
self.dropna = dropna
11241124

1125-
orig_obj = obj
1125+
if not observed and grouper is None:
1126+
observed_grouper, observed_exclusions, _ = get_grouper(
1127+
obj,
1128+
self.keys,
1129+
level=self.level,
1130+
sort=self.sort,
1131+
observed=True,
1132+
dropna=self.dropna,
1133+
)
1134+
1135+
self.observed_grouper = observed_grouper
1136+
self.observed_exclusions = (
1137+
frozenset(observed_exclusions) if observed_exclusions else frozenset()
1138+
)
1139+
11261140
if grouper is None:
11271141
grouper, exclusions, obj = get_grouper(
11281142
obj,
@@ -1138,21 +1152,6 @@ def __init__(
11381152
self._grouper = grouper
11391153
self.exclusions = frozenset(exclusions) if exclusions else frozenset()
11401154

1141-
if not observed and observed_grouper is None:
1142-
observed_grouper, observed_exclusions, _ = get_grouper(
1143-
orig_obj,
1144-
self.keys,
1145-
level=self.level,
1146-
sort=self.sort,
1147-
observed=True,
1148-
dropna=self.dropna,
1149-
)
1150-
1151-
self.observed_grouper = observed_grouper
1152-
self.observed_exclusions = (
1153-
frozenset(observed_exclusions) if observed_exclusions else frozenset()
1154-
)
1155-
11561155
def __getattr__(self, attr: str):
11571156
if attr in self._internal_names_set:
11581157
return object.__getattribute__(self, attr)

0 commit comments

Comments
 (0)