@@ -1188,6 +1188,29 @@ def test_resample_loffset_count(self):
1188
1188
1189
1189
assert_series_equal (result , expected )
1190
1190
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
+
1191
1214
def test_resample_upsample (self ):
1192
1215
# from daily
1193
1216
dti = DatetimeIndex (start = datetime (2005 , 1 , 1 ),
@@ -2655,6 +2678,28 @@ def test_evenly_divisible_with_no_extra_bins(self):
2655
2678
result = df .resample ('7D' ).sum ()
2656
2679
assert_frame_equal (result , expected )
2657
2680
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
+
2658
2703
2659
2704
class TestTimedeltaIndex (Base , tm .TestCase ):
2660
2705
_multiprocess_can_split_ = True
@@ -2677,6 +2722,30 @@ def test_asfreq_bug(self):
2677
2722
freq = '1T' ))
2678
2723
assert_frame_equal (result , expected )
2679
2724
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
+
2680
2749
2681
2750
class TestResamplerGrouper (tm .TestCase ):
2682
2751
def setUp (self ):
0 commit comments