|
1 |
| -from datetime import datetime |
| 1 | +from datetime import datetime, timedelta |
2 | 2 |
|
3 | 3 | import numpy as np
|
4 | 4 |
|
5 | 5 | from pandas import Series, DataFrame, isnull, notnull
|
6 | 6 |
|
7 | 7 | from pandas.tseries.index import date_range
|
8 |
| -from pandas.tseries.offsets import Minute |
| 8 | +from pandas.tseries.offsets import Minute, bday |
9 | 9 | from pandas.tseries.period import period_range
|
10 | 10 | from pandas.tseries.resample import DatetimeIndex, TimeGrouper
|
11 | 11 | import pandas.tseries.offsets as offsets
|
@@ -133,6 +133,26 @@ def test_resample_basic(self):
|
133 | 133 | self.assertEquals(result.irow(1), s['1/4/2005'])
|
134 | 134 | self.assertEquals(result.irow(5), s['1/10/2005'])
|
135 | 135 |
|
| 136 | + def test_resample_loffset(self): |
| 137 | + rng = date_range('1/1/2000 00:00:00', '1/1/2000 00:13:00', freq='min') |
| 138 | + s = Series(np.random.randn(14), index=rng) |
| 139 | + result = s.resample('5min', how='mean', closed='right', label='right', |
| 140 | + loffset=timedelta(minutes=1)) |
| 141 | + idx = date_range('1/1/2000', periods=4, freq='5min') |
| 142 | + expected = Series([s[0], s[1:6].mean(), s[6:11].mean(), s[11:].mean()], |
| 143 | + index=idx + timedelta(minutes=1)) |
| 144 | + assert_series_equal(result, expected) |
| 145 | + |
| 146 | + # from daily |
| 147 | + dti = DatetimeIndex(start=datetime(2005,1,1), end=datetime(2005,1,10), |
| 148 | + freq='D') |
| 149 | + ser = Series(np.random.rand(len(dti)), dti) |
| 150 | + |
| 151 | + # to weekly |
| 152 | + result = ser.resample('w-sun', how='last') |
| 153 | + expected = ser.resample('w-sun', how='last', loffset=-bday) |
| 154 | + self.assertEqual(result.index[0] - bday, expected.index[0]) |
| 155 | + |
136 | 156 | def test_resample_upsample(self):
|
137 | 157 | # from daily
|
138 | 158 | dti = DatetimeIndex(start=datetime(2005,1,1), end=datetime(2005,1,10),
|
|
0 commit comments