Skip to content

Commit ed39d6d

Browse files
committed
Fix pandas-dev#20744 in most cases. loffset ignored in upsample
1 parent 563a6ad commit ed39d6d

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

pandas/core/resample.py

+1
Original file line numberDiff line numberDiff line change
@@ -967,6 +967,7 @@ def _upsample(self, method, limit=None, fill_value=None):
967967
result = obj.reindex(res_index, method=method,
968968
limit=limit, fill_value=fill_value)
969969

970+
result = self._apply_loffset(result)
970971
return self._wrap_result(result)
971972

972973
def _wrap_result(self, result):

pandas/tests/test_resample.py

+20-10
Original file line numberDiff line numberDiff line change
@@ -1153,22 +1153,32 @@ def test_resample_loffset(self):
11531153
rng = date_range('1/1/2000 00:00:00', '1/1/2000 00:13:00', freq='min')
11541154
s = Series(np.random.randn(14), index=rng)
11551155

1156-
result = s.resample('5min', closed='right', label='right',
1157-
loffset=timedelta(minutes=1)).mean()
11581156
idx = date_range('1/1/2000', periods=4, freq='5min')
1159-
expected = Series([s[0], s[1:6].mean(), s[6:11].mean(), s[11:].mean()],
1160-
index=idx + timedelta(minutes=1))
1161-
assert_series_equal(result, expected)
1162-
1163-
expected = s.resample(
1157+
expected_downsample = Series([s[0], s[1:6].mean(),
1158+
s[6:11].mean(), s[11:].mean()],
1159+
index=idx + timedelta(minutes=1))
1160+
expected_upsample = Series([s[0], s[5], s[10], s[-1]],
1161+
index=idx + timedelta(minutes=1)) # GH 20744
1162+
1163+
# loffset should work for upsample and downsample
1164+
result_downsample = s.resample('5min', closed='right', label='right',
1165+
loffset=timedelta(minutes=1)).mean()
1166+
result_upsample = s.resample('5min', closed='right', label='right',
1167+
loffset=timedelta(minutes=1)).ffill()
1168+
1169+
assert_series_equal(result_downsample, expected_downsample)
1170+
assert_series_equal(result_upsample, expected_upsample)
1171+
1172+
# loffset should allow various types
1173+
result = s.resample(
11641174
'5min', closed='right', label='right',
11651175
loffset='1min').mean()
1166-
assert_series_equal(result, expected)
1176+
assert_series_equal(result, expected_downsample)
11671177

1168-
expected = s.resample(
1178+
result = s.resample(
11691179
'5min', closed='right', label='right',
11701180
loffset=Minute(1)).mean()
1171-
assert_series_equal(result, expected)
1181+
assert_series_equal(result, expected_downsample)
11721182

11731183
assert result.index.freq == Minute(5)
11741184

0 commit comments

Comments
 (0)