Skip to content

Commit a4fcb33

Browse files
committed
incorporate Will CRs
1 parent d037e65 commit a4fcb33

File tree

2 files changed

+8
-17
lines changed

2 files changed

+8
-17
lines changed

pandas/core/groupby/groupby.py

+5-9
Original file line numberDiff line numberDiff line change
@@ -2076,9 +2076,8 @@ def pct_change(self, periods=1, fill_method='pad', limit=None, freq=None,
20762076
limit=limit, freq=freq,
20772077
axis=axis))
20782078
if fill_method:
2079-
new = copy.copy(self)
2079+
new = self
20802080
new.obj = getattr(new, fill_method)(limit=limit)
2081-
new._reset_cache()
20822081
else:
20832082
new = self
20842083

@@ -3948,14 +3947,11 @@ def _apply_to_column_groupbys(self, func):
39483947
def pct_change(self, periods=1, fill_method='pad', limit=None, freq=None):
39493948
"""Calcuate pct_change of each value to previous entry in group"""
39503949
if fill_method:
3951-
new = SeriesGroupBy(self.obj, grouper=self.grouper)
3952-
new.obj = getattr(new, fill_method)(limit=limit)
3953-
new._reset_cache()
3954-
else:
3955-
new = self
3950+
self.obj = getattr(self, fill_method)(limit=limit)
3951+
self._reset_cache('_selected_obj')
39563952

3957-
shifted = new.shift(periods=periods, freq=freq)
3958-
return (new.obj / shifted) - 1
3953+
shifted = self.shift(periods=periods, freq=freq)
3954+
return (self.obj / shifted) - 1
39593955

39603956

39613957
class NDFrameGroupBy(GroupBy):

pandas/tests/groupby/test_transform.py

+3-8
Original file line numberDiff line numberDiff line change
@@ -722,23 +722,19 @@ def interweave(list_obj):
722722

723723

724724
@pytest.mark.parametrize("test_series", [True, False])
725-
@pytest.mark.parametrize("shuffle", [True, False])
726725
@pytest.mark.parametrize("periods,fill_method,limit", [
727726
(1, None, None), (1, None, 1),
728727
(1, 'ffill', None), (1, 'ffill', 1),
729728
(1, 'bfill', None), (1, 'bfill', 1),
730729
(-1, 'ffill', None), (-1, 'ffill', 1),
731730
(-1, 'bfill', None), (-1, 'bfill', 1),
732731
])
733-
def test_pct_change(test_series, shuffle, periods, fill_method, limit):
732+
def test_pct_change(test_series, periods, fill_method, limit):
734733
# GH 21200, 21621
735734
vals = [3, np.nan, np.nan, np.nan, 1, 2, 4, 10, np.nan, 4]
736735
keys = ['a', 'b']
737736
key_v = np.repeat(keys, len(vals))
738737
df = DataFrame({'key': key_v, 'vals': vals * 2})
739-
if shuffle:
740-
order = np.random.RandomState(seed=42).permutation(len(df))
741-
df = df.reindex(order).reset_index(drop=True)
742738

743739
if fill_method:
744740
df_g = getattr(df.groupby('key'), fill_method)(limit=limit)
@@ -747,18 +743,17 @@ def test_pct_change(test_series, shuffle, periods, fill_method, limit):
747743
grp = df.groupby('key')
748744

749745
expected = grp['vals'].obj / grp['vals'].shift(periods) - 1
750-
expected = expected.to_frame('vals')
751746

752747
if test_series:
753748
result = df.groupby('key')['vals'].pct_change(periods=periods,
754749
fill_method=fill_method,
755750
limit=limit)
756-
tm.assert_series_equal(result, expected.loc[:, 'vals'])
751+
tm.assert_series_equal(result, expected)
757752
else:
758753
result = df.groupby('key').pct_change(periods=periods,
759754
fill_method=fill_method,
760755
limit=limit)
761-
tm.assert_frame_equal(result, expected)
756+
tm.assert_frame_equal(result, expected.to_frame('vals'))
762757

763758

764759
@pytest.mark.parametrize("func", [np.any, np.all])

0 commit comments

Comments
 (0)