@@ -1188,6 +1188,29 @@ def test_resample_loffset_count(self):
11881188
11891189 assert_series_equal (result , expected )
11901190
1191+ def test_resample_loffset_arg_type (self ):
1192+ # GH 13218, 15002
1193+ s = self .create_series ()
1194+ expected_means = [s .values [i :i + 2 ].mean ()
1195+ for i in range (0 , len (s .values ), 2 )]
1196+ df = s .to_frame ('value' )
1197+ for arg in ['mean' , {'value' : 'mean' }, ['mean' ]]:
1198+ result_agg = df .resample ('2D' , loffset = '2H' ).agg (arg )
1199+ with tm .assert_produces_warning (FutureWarning ,
1200+ check_stacklevel = False ):
1201+ result_how = df .resample ('2D' , how = arg , loffset = '2H' )
1202+ expected_index = DatetimeIndex (start = df .index [0 ],
1203+ freq = '2D' ,
1204+ periods = len (df .index ) / 2 )
1205+ expected_index = expected_index + timedelta (hours = 2 )
1206+ expected = DataFrame ({'value' : expected_means },
1207+ index = expected_index )
1208+ if isinstance (arg , list ):
1209+ expected .columns = pd .MultiIndex .from_tuples ([('value' ,
1210+ 'mean' )])
1211+ assert_frame_equal (result_agg , expected )
1212+ assert_frame_equal (result_how , expected )
1213+
11911214 def test_resample_upsample (self ):
11921215 # from daily
11931216 dti = DatetimeIndex (start = datetime (2005 , 1 , 1 ),
@@ -2655,6 +2678,28 @@ def test_evenly_divisible_with_no_extra_bins(self):
26552678 result = df .resample ('7D' ).sum ()
26562679 assert_frame_equal (result , expected )
26572680
2681+ def test_resample_loffset_arg_type (self ):
2682+ # GH 13218, 15002
2683+ s = self .create_series ()
2684+ expected_means = [s .values [i :i + 2 ].mean ()
2685+ for i in range (0 , len (s .values ), 2 )]
2686+ df = s .to_frame ('value' )
2687+ for arg in ['mean' , {'value' : 'mean' }, ['mean' ]]:
2688+ result_agg = df .resample ('2D' , loffset = '2H' ).agg (arg )
2689+ with tm .assert_produces_warning (FutureWarning ,
2690+ check_stacklevel = False ):
2691+ result_how = df .resample ('2D' , how = arg , loffset = '2H' )
2692+ expected_index = df .index .take (
2693+ np .arange (0 , len (df .index ), 2 )).to_timestamp ()
2694+ expected_index = expected_index + timedelta (hours = 2 )
2695+ expected = DataFrame ({'value' : expected_means },
2696+ index = expected_index )
2697+ if isinstance (arg , list ):
2698+ expected .columns = pd .MultiIndex .from_tuples ([('value' ,
2699+ 'mean' )])
2700+ assert_frame_equal (result_agg , expected )
2701+ assert_frame_equal (result_how , expected )
2702+
26582703
26592704class TestTimedeltaIndex (Base , tm .TestCase ):
26602705 _multiprocess_can_split_ = True
@@ -2677,6 +2722,30 @@ def test_asfreq_bug(self):
26772722 freq = '1T' ))
26782723 assert_frame_equal (result , expected )
26792724
2725+ def test_resample_loffset_arg_type (self ):
2726+ # GH 13218, 15002
2727+ s = self .create_series ()
2728+ expected_means = [s .values [i :i + 2 ].mean ()
2729+ for i in range (0 , len (s .values ), 2 )]
2730+ df = s .to_frame ('value' )
2731+ for arg in ['mean' , {'value' : 'mean' }, ['mean' ]]:
2732+ result_agg = df .resample ('2D' , loffset = '2H' ).agg (arg )
2733+ with tm .assert_produces_warning (FutureWarning ,
2734+ check_stacklevel = False ):
2735+ result_how = df .resample ('2D' , how = arg , loffset = '2H' )
2736+ expected_index = timedelta_range (start = df .index [0 ],
2737+ freq = '2D' ,
2738+ periods = len (df .index ) / 2 )
2739+ expected = DataFrame ({'value' : expected_means },
2740+ index = expected_index )
2741+ if isinstance (arg , list ):
2742+ expected .columns = pd .MultiIndex .from_tuples ([('value' ,
2743+ 'mean' )])
2744+ # GH 13022, 7687 - TODO: fix resample w/ TimedeltaIndex
2745+ with tm .assertRaises (AssertionError ):
2746+ assert_frame_equal (result_agg , expected )
2747+ assert_frame_equal (result_how , expected )
2748+
26802749
26812750class TestResamplerGrouper (tm .TestCase ):
26822751 def setUp (self ):
0 commit comments