33from datetime import datetime , timedelta
44from functools import partial
55
6- from pandas .compat import range , lrange , zip , product
6+ from pandas .compat import range , lrange , zip , product , OrderedDict
77import numpy as np
88
99from pandas import (Series , DataFrame , Panel , Index , isnull ,
3131bday = BDay ()
3232
3333
34- def compare_frame_like (result , expected ):
35- # if we are using dicts, the orderings is not guaranteed
36- assert_frame_equal (result .reindex_like (expected ), expected )
37-
38-
3934class TestResampleAPI (tm .TestCase ):
4035 _multiprocess_can_split_ = True
4136
@@ -211,7 +206,7 @@ def test_downsample_but_actually_upsampling(self):
211206
212207 # this is reindex / asfreq
213208 rng = pd .date_range ('1/1/2012' , periods = 100 , freq = 'S' )
214- ts = pd .Series (np .arange (len (rng )), index = rng )
209+ ts = pd .Series (np .arange (len (rng ), dtype = 'int64' ), index = rng )
215210 result = ts .resample ('20s' ).asfreq ()
216211 expected = Series ([0 , 20 , 40 , 60 , 80 ],
217212 index = pd .date_range ('2012-01-01 00:00:00' ,
@@ -271,7 +266,7 @@ def test_agg(self):
271266 for t in [r , g ]:
272267 result = t .aggregate ({'A' : np .mean ,
273268 'B' : np .std })
274- compare_frame_like (result , expected )
269+ assert_frame_equal (result , expected , check_like = True )
275270
276271 expected = pd .concat ([a_mean , a_std ], axis = 1 )
277272 expected .columns = pd .MultiIndex .from_tuples ([('A' , 'mean' ),
@@ -291,7 +286,7 @@ def test_agg(self):
291286 ('A' , 'sum' )])
292287 for t in [r , g ]:
293288 result = t .aggregate ({'A' : {'mean' : 'mean' , 'sum' : 'sum' }})
294- compare_frame_like (result , expected )
289+ assert_frame_equal (result , expected , check_like = True )
295290
296291 expected = pd .concat ([a_mean , a_sum , b_mean , b_sum ], axis = 1 )
297292 expected .columns = pd .MultiIndex .from_tuples ([('A' , 'mean' ),
@@ -301,7 +296,7 @@ def test_agg(self):
301296 for t in [r , g ]:
302297 result = t .aggregate ({'A' : {'mean' : 'mean' , 'sum' : 'sum' },
303298 'B' : {'mean2' : 'mean' , 'sum2' : 'sum' }})
304- compare_frame_like (result , expected )
299+ assert_frame_equal (result , expected , check_like = True )
305300
306301 expected = pd .concat ([a_mean , a_std , b_mean , b_std ], axis = 1 )
307302 expected .columns = pd .MultiIndex .from_tuples ([('A' , 'mean' ),
@@ -311,7 +306,7 @@ def test_agg(self):
311306 for t in [r , g ]:
312307 result = t .aggregate ({'A' : ['mean' , 'std' ],
313308 'B' : ['mean' , 'std' ]})
314- compare_frame_like (result , expected )
309+ assert_frame_equal (result , expected , check_like = True )
315310
316311 expected = pd .concat ([a_mean , a_sum , b_mean , b_sum ], axis = 1 )
317312 expected .columns = pd .MultiIndex .from_tuples ([('r1' , 'A' , 'mean' ),
@@ -338,19 +333,39 @@ def test_agg_misc(self):
338333 'B' : lambda x : np .std (x , ddof = 1 )})
339334 rcustom = t ['B' ].apply (lambda x : np .std (x , ddof = 1 ))
340335 expected = pd .concat ([r ['A' ].sum (), rcustom ], axis = 1 )
341- compare_frame_like (result , expected )
336+ assert_frame_equal (result , expected , check_like = True )
342337
343338 # misc
339+ expected = pd .concat ([t ['A' ].sum (),
340+ t ['B' ].sum (),
341+ t ['A' ].mean (),
342+ t ['B' ].mean ()],
343+ axis = 1 )
344+ expected .columns = pd .MultiIndex .from_tuples ([('result1' , 'A' ),
345+ ('result1' , 'B' ),
346+ ('result2' , 'A' ),
347+ ('result2' , 'B' )])
344348 for t in [r , g ]:
345- t [['A' , 'B' ]].agg ({'result1' : np .sum , 'result2' : np .mean })
349+ result = t [['A' , 'B' ]].agg (OrderedDict ([('result1' , np .sum ),
350+ ('result2' , np .mean )]))
351+ assert_frame_equal (result , expected , check_like = True )
346352
347353 for t in [r , g ]:
348354 t .agg ({'A' : ['sum' , 'std' ], 'B' : ['mean' , 'std' ]})
349355
356+ # what should this produce??????
357+ import pdb ; pdb .set_trace ()
350358 for t in [r , g ]:
351359 t [['A' , 'B' ]].agg ({'A' : ['sum' , 'std' ],
352360 'B' : ['mean' , 'std' ]})
353361
362+ # errors
363+ for t in [r , g ]:
364+ r [['A' ]].agg ({'A' : ['sum' , 'std' ], 'B' : ['mean' , 'std' ]})
365+
366+ for t in [r , g ]:
367+ r ['A' ].agg ({'A' : ['sum' , 'std' ], 'B' : ['mean' , 'std' ]})
368+
354369
355370class TestResample (tm .TestCase ):
356371 _multiprocess_can_split_ = True
@@ -515,7 +530,7 @@ def test_resample_with_timedeltas(self):
515530
516531 def test_resample_single_period_timedelta (self ):
517532
518- s = Series (range (5 ), index = pd .timedelta_range (
533+ s = Series (list ( range (5 ) ), index = pd .timedelta_range (
519534 '1 day' , freq = 's' , periods = 5 ))
520535 result = s .resample ('2s' ).sum ()
521536 expected = Series ([1 , 5 , 4 ], index = pd .timedelta_range (
0 commit comments