@@ -87,7 +87,8 @@ def __init__(self, obj, groupby=None, axis=0, kind=None, **kwargs):
87
87
self .grouper = None
88
88
89
89
if self .groupby is not None :
90
- self .groupby ._set_grouper (self ._convert_obj (obj ), sort = True )
90
+ obj , converter = self ._convert_obj (obj )
91
+ self .groupby ._set_grouper (obj , sort = True , converter = converter )
91
92
92
93
def __unicode__ (self ):
93
94
""" provide a nice str repr of our rolling object """
@@ -203,13 +204,20 @@ def __setitem__(self, attr, value):
203
204
def _convert_obj (self , obj ):
204
205
"""
205
206
provide any conversions for the object in order to correctly handle
207
+ and returns a converter function to be applied to grouping selection
206
208
207
209
Parameters
208
210
----------
209
211
obj : the object to be resampled
212
+
213
+ Returns
214
+ -------
215
+ obj : converted object
216
+ converter : callable, optional
217
+ converter to apply after selection
210
218
"""
211
219
obj = obj .consolidate ()
212
- return obj
220
+ return obj , None
213
221
214
222
def _get_binner_for_time (self ):
215
223
raise AbstractMethodError (self )
@@ -703,6 +711,7 @@ def _upsample(self, method, limit=None):
703
711
.fillna
704
712
705
713
"""
714
+ # import pdb; pdb.set_trace()
706
715
self ._set_binner ()
707
716
if self .axis :
708
717
raise AssertionError ('axis must be 0' )
@@ -751,7 +760,7 @@ def _resampler_for_grouping(self):
751
760
return PeriodIndexResamplerGroupby
752
761
753
762
def _convert_obj (self , obj ):
754
- obj = super (PeriodIndexResampler , self )._convert_obj (obj )
763
+ obj , _ = super (PeriodIndexResampler , self )._convert_obj (obj )
755
764
756
765
offset = to_offset (self .freq )
757
766
if offset .n > 1 :
@@ -761,10 +770,11 @@ def _convert_obj(self, obj):
761
770
# Cannot have multiple of periods, convert to timestamp
762
771
self .kind = 'timestamp'
763
772
773
+ converter = None
764
774
# convert to timestamp
765
775
if not (self .kind is None or self .kind == 'period' ):
766
- obj = obj .to_timestamp (how = self .convention )
767
- return obj
776
+ converter = lambda x : x .to_timestamp (how = self .convention )
777
+ return obj , converter
768
778
769
779
def aggregate (self , arg , * args , ** kwargs ):
770
780
result , how = self ._aggregate (arg , * args , ** kwargs )
@@ -1002,7 +1012,6 @@ def _get_resampler(self, obj, kind=None):
1002
1012
TypeError if incompatible axis
1003
1013
1004
1014
"""
1005
- import pdb ; pdb .set_trace ()
1006
1015
self ._set_grouper (obj )
1007
1016
1008
1017
ax = self .ax
0 commit comments