def test_resample_basic_from_daily(self): # from daily dti = DatetimeIndex(start=datetime(2005, 1, 1), end=datetime(2005, 1, 10), freq='D', name='index') s = Series(np.random.rand(len(dti)), dti) # to weekly result = s.resample('w-sun', how='last') self.assertEqual(len(result), 3) self.assertTrue((result.index.dayofweek == [6, 6, 6]).all()) self.assertEqual(result.irow(0), s['1/2/2005']) self.assertEqual(result.irow(1), s['1/9/2005']) self.assertEqual(result.irow(2), s.irow(-1)) result = s.resample('W-MON', how='last') self.assertEqual(len(result), 2) self.assertTrue((result.index.dayofweek == [0, 0]).all()) self.assertEqual(result.irow(0), s['1/3/2005']) self.assertEqual(result.irow(1), s['1/10/2005']) result = s.resample('W-TUE', how='last') self.assertEqual(len(result), 2) self.assertTrue((result.index.dayofweek == [1, 1]).all()) self.assertEqual(result.irow(0), s['1/4/2005']) self.assertEqual(result.irow(1), s['1/10/2005']) result = s.resample('W-WED', how='last') self.assertEqual(len(result), 2) self.assertTrue((result.index.dayofweek == [2, 2]).all()) self.assertEqual(result.irow(0), s['1/5/2005']) self.assertEqual(result.irow(1), s['1/10/2005']) result = s.resample('W-THU', how='last') self.assertEqual(len(result), 2) self.assertTrue((result.index.dayofweek == [3, 3]).all()) self.assertEqual(result.irow(0), s['1/6/2005']) self.assertEqual(result.irow(1), s['1/10/2005']) result = s.resample('W-FRI', how='last') self.assertEqual(len(result), 2) self.assertTrue((result.index.dayofweek == [4, 4]).all()) self.assertEqual(result.irow(0), s['1/7/2005']) self.assertEqual(result.irow(1), s['1/10/2005']) # to biz day result = s.resample('B', how='last') self.assertEqual(len(result), 7) self.assertTrue((result.index.dayofweek == [4, 0, 1, 2, 3, 4, 0]).all()) self.assertEqual(result.irow(0), s['1/2/2005']) self.assertEqual(result.irow(1), s['1/3/2005']) self.assertEqual(result.irow(5), s['1/9/2005']) self.assertEqual(result.index.name, 'index')
def test_resample_basic_from_daily(self): # from daily dti = DatetimeIndex( start=datetime(2005, 1, 1), end=datetime(2005, 1, 10), freq='D', name='index') s = Series(np.random.rand(len(dti)), dti) # to weekly result = s.resample('w-sun', how='last') self.assertEquals(len(result), 3) self.assert_((result.index.dayofweek == [6, 6, 6]).all()) self.assertEquals(result.irow(0), s['1/2/2005']) self.assertEquals(result.irow(1), s['1/9/2005']) self.assertEquals(result.irow(2), s.irow(-1)) result = s.resample('W-MON', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [0, 0]).all()) self.assertEquals(result.irow(0), s['1/3/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.resample('W-TUE', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [1, 1]).all()) self.assertEquals(result.irow(0), s['1/4/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.resample('W-WED', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [2, 2]).all()) self.assertEquals(result.irow(0), s['1/5/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.resample('W-THU', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [3, 3]).all()) self.assertEquals(result.irow(0), s['1/6/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.resample('W-FRI', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [4, 4]).all()) self.assertEquals(result.irow(0), s['1/7/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) # to biz day result = s.resample('B', how='last') self.assertEquals(len(result), 7) self.assert_((result.index.dayofweek == [4, 0, 1, 2, 3, 4, 0]).all()) self.assertEquals(result.irow(0), s['1/2/2005']) self.assertEquals(result.irow(1), s['1/3/2005']) self.assertEquals(result.irow(5), s['1/9/2005']) self.assert_(result.index.name == 'index')
def test_resample_basic_from_daily(self): # from daily dti = DatetimeIndex(start=datetime(2005, 1, 1), end=datetime(2005, 1, 10), freq="D", name="index") s = Series(np.random.rand(len(dti)), dti) # to weekly result = s.resample("w-sun", how="last") self.assertEquals(len(result), 3) self.assert_((result.index.dayofweek == [6, 6, 6]).all()) self.assertEquals(result.irow(0), s["1/2/2005"]) self.assertEquals(result.irow(1), s["1/9/2005"]) self.assertEquals(result.irow(2), s.irow(-1)) result = s.resample("W-MON", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [0, 0]).all()) self.assertEquals(result.irow(0), s["1/3/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) result = s.resample("W-TUE", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [1, 1]).all()) self.assertEquals(result.irow(0), s["1/4/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) result = s.resample("W-WED", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [2, 2]).all()) self.assertEquals(result.irow(0), s["1/5/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) result = s.resample("W-THU", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [3, 3]).all()) self.assertEquals(result.irow(0), s["1/6/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) result = s.resample("W-FRI", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [4, 4]).all()) self.assertEquals(result.irow(0), s["1/7/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) # to biz day result = s.resample("B", how="last") self.assertEquals(len(result), 7) self.assert_((result.index.dayofweek == [4, 0, 1, 2, 3, 4, 0]).all()) self.assertEquals(result.irow(0), s["1/2/2005"]) self.assertEquals(result.irow(1), s["1/3/2005"]) self.assertEquals(result.irow(5), s["1/9/2005"]) self.assertEqual(result.index.name, "index")
def test_partial_slice_high_reso(self): # higher reso rng = timedelta_range('1 day 10:11:12', freq='us', periods=2000) s = Series(np.arange(len(rng)), index=rng) result = s['1 day 10:11:12':] expected = s.iloc[0:] assert_series_equal(result, expected) result = s['1 day 10:11:12.001':] expected = s.iloc[1000:] assert_series_equal(result, expected) result = s['1 days, 10:11:12.001001'] self.assertEqual(result, s.irow(1001))
def test_partial_slice_high_reso(self): # higher reso rng = timedelta_range('1 day 10:11:12', freq='us',periods=2000) s = Series(np.arange(len(rng)), index=rng) result = s['1 day 10:11:12':] expected = s.iloc[0:] assert_series_equal(result, expected) result = s['1 day 10:11:12.001':] expected = s.iloc[1000:] assert_series_equal(result, expected) result = s['1 days, 10:11:12.001001'] self.assertEqual(result, s.irow(1001))
def test_partial_slice(self): rng = timedelta_range('1 day 10:11:12', freq='h', periods=500) s = Series(np.arange(len(rng)), index=rng) result = s['5 day':'6 day'] expected = s.iloc[86:134] assert_series_equal(result, expected) result = s['5 day':] expected = s.iloc[86:] assert_series_equal(result, expected) result = s[:'6 day'] expected = s.iloc[:134] assert_series_equal(result, expected) result = s['6 days, 23:11:12'] self.assertEqual(result, s.irow(133)) self.assertRaises(KeyError, s.__getitem__, '50 days')
def test_partial_slice(self): rng = timedelta_range('1 day 10:11:12', freq='h',periods=500) s = Series(np.arange(len(rng)), index=rng) result = s['5 day':'6 day'] expected = s.iloc[86:134] assert_series_equal(result, expected) result = s['5 day':] expected = s.iloc[86:] assert_series_equal(result, expected) result = s[:'6 day'] expected = s.iloc[:134] assert_series_equal(result, expected) result = s['6 days, 23:11:12'] self.assertEqual(result, s.irow(133)) self.assertRaises(KeyError, s.__getitem__, '50 days')
def test_partial_slice(self): rng = timedelta_range("1 day 10:11:12", freq="h", periods=500) s = Series(np.arange(len(rng)), index=rng) result = s["5 day":"6 day"] expected = s.iloc[86:134] assert_series_equal(result, expected) result = s["5 day":] expected = s.iloc[86:] assert_series_equal(result, expected) result = s[:"6 day"] expected = s.iloc[:134] assert_series_equal(result, expected) result = s["6 days, 23:11:12"] self.assertEqual(result, s.irow(133)) self.assertRaises(KeyError, s.__getitem__, "50 days")
def test_resample_basic(self): rng = date_range('1/1/2000 00:00:00', '1/1/2000 00:13:00', freq='min', name='index') s = Series(np.random.randn(14), index=rng) result = s.resample('5min', how='mean', closed='right', label='right') expected = Series([s[0], s[1:6].mean(), s[6:11].mean(), s[11:].mean()], index=date_range('1/1/2000', periods=4, freq='5min')) assert_series_equal(result, expected) self.assert_(result.index.name == 'index') result = s.resample('5min', how='mean', closed='left', label='right') expected = Series([s[:5].mean(), s[5:10].mean(), s[10:].mean()], index=date_range('1/1/2000 00:05', periods=3, freq='5min')) assert_series_equal(result, expected) s = self.series result = s.resample('5Min', how='last') grouper = TimeGrouper(Minute(5), closed='right', label='right') expect = s.groupby(grouper).agg(lambda x: x[-1]) assert_series_equal(result, expect) # from daily dti = DatetimeIndex(start=datetime(2005,1,1), end=datetime(2005,1,10), freq='D', name='index') s = Series(np.random.rand(len(dti)), dti) # to weekly result = s.resample('w-sun', how='last') self.assertEquals(len(result), 3) self.assert_((result.index.dayofweek == [6,6,6]).all()) self.assertEquals(result.irow(0), s['1/2/2005']) self.assertEquals(result.irow(1), s['1/9/2005']) self.assertEquals(result.irow(2), s.irow(-1)) result = s.resample('W-MON', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [0,0]).all()) self.assertEquals(result.irow(0), s['1/3/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.resample('W-TUE', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [1,1]).all()) self.assertEquals(result.irow(0), s['1/4/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.resample('W-WED', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [2,2]).all()) self.assertEquals(result.irow(0), s['1/5/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.resample('W-THU', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [3,3]).all()) self.assertEquals(result.irow(0), s['1/6/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.resample('W-FRI', how='last') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [4,4]).all()) self.assertEquals(result.irow(0), s['1/7/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) # to biz day result = s.resample('B', how='last') self.assertEquals(len(result), 6) self.assert_((result.index.dayofweek == [0,1,2,3,4,0]).all()) self.assertEquals(result.irow(0), s['1/3/2005']) self.assertEquals(result.irow(1), s['1/4/2005']) self.assertEquals(result.irow(5), s['1/10/2005']) self.assert_(result.index.name == 'index')
def test_resample_basic(self): rng = date_range("1/1/2000 00:00:00", "1/1/2000 00:13:00", freq="min", name="index") s = Series(np.random.randn(14), index=rng) result = s.resample("5min", how="mean", closed="right", label="right") expected = Series( [s[0], s[1:6].mean(), s[6:11].mean(), s[11:].mean()], index=date_range("1/1/2000", periods=4, freq="5min") ) assert_series_equal(result, expected) self.assert_(result.index.name == "index") result = s.resample("5min", how="mean", closed="left", label="right") expected = Series( [s[:5].mean(), s[5:10].mean(), s[10:].mean()], index=date_range("1/1/2000 00:05", periods=3, freq="5min") ) assert_series_equal(result, expected) s = self.series result = s.resample("5Min", how="last") grouper = TimeGrouper(Minute(5), closed="right", label="right") expect = s.groupby(grouper).agg(lambda x: x[-1]) assert_series_equal(result, expect) # from daily dti = DatetimeIndex(start=datetime(2005, 1, 1), end=datetime(2005, 1, 10), freq="D", name="index") s = Series(np.random.rand(len(dti)), dti) # to weekly result = s.resample("w-sun", how="last") self.assertEquals(len(result), 3) self.assert_((result.index.dayofweek == [6, 6, 6]).all()) self.assertEquals(result.irow(0), s["1/2/2005"]) self.assertEquals(result.irow(1), s["1/9/2005"]) self.assertEquals(result.irow(2), s.irow(-1)) result = s.resample("W-MON", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [0, 0]).all()) self.assertEquals(result.irow(0), s["1/3/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) result = s.resample("W-TUE", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [1, 1]).all()) self.assertEquals(result.irow(0), s["1/4/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) result = s.resample("W-WED", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [2, 2]).all()) self.assertEquals(result.irow(0), s["1/5/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) result = s.resample("W-THU", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [3, 3]).all()) self.assertEquals(result.irow(0), s["1/6/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) result = s.resample("W-FRI", how="last") self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [4, 4]).all()) self.assertEquals(result.irow(0), s["1/7/2005"]) self.assertEquals(result.irow(1), s["1/10/2005"]) # to biz day result = s.resample("B", how="last") self.assertEquals(len(result), 6) self.assert_((result.index.dayofweek == [0, 1, 2, 3, 4, 0]).all()) self.assertEquals(result.irow(0), s["1/3/2005"]) self.assertEquals(result.irow(1), s["1/4/2005"]) self.assertEquals(result.irow(5), s["1/10/2005"]) self.assert_(result.index.name == "index")
def test_convert_basic(self): s = self.series result = s.convert('5Min') grouper = TimeGrouper(Minute(5), closed='right', label='right') expect = s.groupby(grouper).agg(lambda x: x[-1]) assert_series_equal(result, expect) # from daily dti = DatetimeIndex(start=datetime(2005,1,1), end=datetime(2005,1,10), freq='D') s = Series(rand(len(dti)), dti) # to weekly result = s.convert('w-sun') self.assertEquals(len(result), 3) self.assert_((result.index.dayofweek == [6,6,6]).all()) self.assertEquals(result.irow(0), s['1/2/2005']) self.assertEquals(result.irow(1), s['1/9/2005']) self.assertEquals(result.irow(2), s.irow(-1)) result = s.convert('W-MON') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [0,0]).all()) self.assertEquals(result.irow(0), s['1/3/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.convert('W-TUE') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [1,1]).all()) self.assertEquals(result.irow(0), s['1/4/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.convert('W-WED') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [2,2]).all()) self.assertEquals(result.irow(0), s['1/5/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.convert('W-THU') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [3,3]).all()) self.assertEquals(result.irow(0), s['1/6/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) result = s.convert('W-FRI') self.assertEquals(len(result), 2) self.assert_((result.index.dayofweek == [4,4]).all()) self.assertEquals(result.irow(0), s['1/7/2005']) self.assertEquals(result.irow(1), s['1/10/2005']) # to biz day result = s.convert('B') self.assertEquals(len(result), 6) self.assert_((result.index.dayofweek == [0,1,2,3,4,0]).all()) self.assertEquals(result.irow(0), s['1/3/2005']) self.assertEquals(result.irow(1), s['1/4/2005']) self.assertEquals(result.irow(5), s['1/10/2005'])