@@ -1168,25 +1168,35 @@ def test_resample_loffset(self):
11681168
11691169 def test_resample_loffset_count (self ):
11701170 # GH 12725
1171- start_time = '1/1/2000 00:00:00'
1172- rng = date_range (start_time , periods = 100 , freq = 'S' )
1173- ts = Series (np .random .randn (len (rng )), index = rng )
1174-
1175- result = ts .resample ('10S' , loffset = '1s' ).count ()
1176-
1177- expected_index = (
1178- date_range (start_time , periods = 10 , freq = '10S' ) +
1179- timedelta (seconds = 1 )
1180- )
1181- expected = pd .Series (10 , index = expected_index )
1182-
1183- assert_series_equal (result , expected )
1184-
1185- # Same issue should apply to .size() since it goes through
1186- # same code path
1187- result = ts .resample ('10S' , loffset = '1s' ).size ()
1171+ s = self .create_series ()
1172+ df = s .to_frame ('value' )
1173+ result = df .resample ('2D' , loffset = '2H' ).count ()
1174+ expected_index = DatetimeIndex (start = df .index [0 ],
1175+ freq = '2D' ,
1176+ periods = len (df .index ) / 2 )
1177+ expected_index = expected_index + timedelta (hours = 2 )
1178+ expected = DataFrame ({'value' : 2 },
1179+ index = expected_index )
1180+ assert_frame_equal (result , expected )
11881181
1189- assert_series_equal (result , expected )
1182+ def test_resample_loffset_agg (self ):
1183+ # GH 13218
1184+ s = self .create_series ()
1185+ expected_means = [s .values [i :i + 2 ].mean ()
1186+ for i in range (0 , len (s .values ), 2 )]
1187+ df = s .to_frame ('value' )
1188+ for arg in ['mean' , {'value' : 'mean' }, ['mean' ]]:
1189+ result = df .resample ('2D' , loffset = '2H' ).agg (arg )
1190+ expected_index = DatetimeIndex (start = df .index [0 ],
1191+ freq = '2D' ,
1192+ periods = len (df .index ) / 2 )
1193+ expected_index = expected_index + timedelta (hours = 2 )
1194+ expected = DataFrame ({'value' : expected_means },
1195+ index = expected_index )
1196+ if isinstance (arg , list ):
1197+ expected .columns = pd .MultiIndex .from_tuples ([('value' ,
1198+ 'mean' )])
1199+ assert_frame_equal (result , expected )
11901200
11911201 def test_resample_upsample (self ):
11921202 # from daily
@@ -2629,6 +2639,36 @@ def test_evenly_divisible_with_no_extra_bins(self):
26292639 result = df .resample ('7D' ).sum ()
26302640 assert_frame_equal (result , expected )
26312641
2642+ def test_resample_loffset_count (self ):
2643+ # GH 12725
2644+ s = self .create_series ()
2645+ df = s .to_frame ('value' )
2646+ result = df .resample ('2D' , loffset = '2H' ).count ()
2647+ expected_index = df .index .take (
2648+ np .arange (0 , len (df .index ), 2 )).to_datetime ()
2649+ expected_index = expected_index + timedelta (hours = 2 )
2650+ expected = DataFrame ({'value' : 2 },
2651+ index = expected_index )
2652+ assert_frame_equal (result , expected )
2653+
2654+ def test_resample_loffset_agg (self ):
2655+ # GH 13218
2656+ s = self .create_series ()
2657+ expected_means = [s .values [i :i + 2 ].mean ()
2658+ for i in range (0 , len (s .values ), 2 )]
2659+ df = s .to_frame ('value' )
2660+ for arg in ['mean' , {'value' : 'mean' }, ['mean' ]]:
2661+ result = df .resample ('2D' , loffset = '2H' ).agg (arg )
2662+ expected_index = df .index .take (
2663+ np .arange (0 , len (df .index ), 2 )).to_datetime ()
2664+ expected_index = expected_index + timedelta (hours = 2 )
2665+ expected = DataFrame ({'value' : expected_means },
2666+ index = expected_index )
2667+ if isinstance (arg , list ):
2668+ expected .columns = pd .MultiIndex .from_tuples ([('value' ,
2669+ 'mean' )])
2670+ assert_frame_equal (result , expected )
2671+
26322672
26332673class TestTimedeltaIndex (Base , tm .TestCase ):
26342674 _multiprocess_can_split_ = True
@@ -2651,6 +2691,41 @@ def test_asfreq_bug(self):
26512691 freq = '1T' ))
26522692 assert_frame_equal (result , expected )
26532693
2694+ def test_resample_loffset_count (self ):
2695+ # GH 12725
2696+ s = self .create_series ()
2697+ df = s .to_frame ('value' )
2698+ result = df .resample ('2D' , loffset = '2H' ).count ()
2699+
2700+ # GH 13022, 7687 resample w/ TimedeltaIndex results in incorrect index
2701+ expected_index = timedelta_range (start = df .index [0 ],
2702+ freq = '2D' ,
2703+ periods = len (df .index ) / 2 )
2704+ expected = DataFrame ({'value' : 2 },
2705+ index = expected_index )
2706+ with tm .assertRaises (AssertionError ):
2707+ assert_frame_equal (result , expected )
2708+
2709+ def test_resample_loffset_agg (self ):
2710+ # GH 13218
2711+ s = self .create_series ()
2712+ expected_means = [s .values [i :i + 2 ].mean ()
2713+ for i in range (0 , len (s .values ), 2 )]
2714+ df = s .to_frame ('value' )
2715+ for arg in ['mean' , {'value' : 'mean' }, ['mean' ]]:
2716+ result = df .resample ('2D' , loffset = '2H' ).agg (arg )
2717+ expected_index = timedelta_range (start = df .index [0 ],
2718+ freq = '2D' ,
2719+ periods = len (df .index ) / 2 )
2720+ expected = DataFrame ({'value' : expected_means },
2721+ index = expected_index )
2722+ if isinstance (arg , list ):
2723+ expected .columns = pd .MultiIndex .from_tuples ([('value' ,
2724+ 'mean' )])
2725+ # GH 13022, 7687 - TODO: fix resample w/ TimedeltaIndex
2726+ with tm .assertRaises (AssertionError ):
2727+ assert_frame_equal (result , expected )
2728+
26542729
26552730class TestResamplerGrouper (tm .TestCase ):
26562731 def setUp (self ):
0 commit comments