Skip to content

Commit 64d2e4f

Browse files
committed
cr update
1 parent a4fcb33 commit 64d2e4f

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

pandas/core/groupby/groupby.py

+16-14
Original file line numberDiff line numberDiff line change
@@ -2075,15 +2075,15 @@ def pct_change(self, periods=1, fill_method='pad', limit=None, freq=None,
20752075
fill_method=fill_method,
20762076
limit=limit, freq=freq,
20772077
axis=axis))
2078-
if fill_method:
2079-
new = self
2080-
new.obj = getattr(new, fill_method)(limit=limit)
2081-
else:
2082-
new = self
20832078

2084-
obj = new.obj.drop(self.grouper.names, axis=1)
2085-
shifted = new.shift(periods=periods, freq=freq)
2086-
return (obj / shifted) - 1
2079+
with _group_selection_context(self) as new:
2080+
if fill_method:
2081+
new = copy.copy(new)
2082+
new.obj = getattr(new, fill_method)(limit=limit)
2083+
2084+
obj = new.obj.drop(self.grouper.names, axis=1)
2085+
shifted = new.shift(periods=periods, freq=freq)
2086+
return (obj / shifted) - 1
20872087

20882088
@Substitution(name='groupby')
20892089
@Appender(_doc_template)
@@ -3946,12 +3946,14 @@ def _apply_to_column_groupbys(self, func):
39463946

39473947
def pct_change(self, periods=1, fill_method='pad', limit=None, freq=None):
39483948
"""Calcuate pct_change of each value to previous entry in group"""
3949-
if fill_method:
3950-
self.obj = getattr(self, fill_method)(limit=limit)
3951-
self._reset_cache('_selected_obj')
3952-
3953-
shifted = self.shift(periods=periods, freq=freq)
3954-
return (self.obj / shifted) - 1
3949+
with _group_selection_context(self) as new:
3950+
if fill_method:
3951+
new = copy.copy(new)
3952+
new.obj = getattr(new, fill_method)(limit=limit)
3953+
new._reset_cache('_selected_obj')
3954+
3955+
shifted = new.shift(periods=periods, freq=freq)
3956+
return (new.obj / shifted) - 1
39553957

39563958

39573959
class NDFrameGroupBy(GroupBy):

0 commit comments

Comments
 (0)