@@ -169,7 +169,7 @@ def __new__(cls, *args, **kwargs):
169
169
cls = TimeGrouper
170
170
return super (Grouper , cls ).__new__ (cls )
171
171
172
- def __init__ (self , key = None , level = None , freq = None , axis = None , sort = True ):
172
+ def __init__ (self , key = None , level = None , freq = None , axis = None , sort = False ):
173
173
self .key = key
174
174
self .level = level
175
175
self .freq = freq
@@ -201,7 +201,7 @@ def get_grouper(self, obj):
201
201
self .set_grouper (obj )
202
202
return self .binner , self .grouper , self .obj
203
203
204
- def set_grouper (self , obj ):
204
+ def set_grouper (self , obj , sort = False ):
205
205
"""
206
206
given an object and the specifcations, setup the internal grouper for this particular specification
207
207
@@ -243,7 +243,7 @@ def set_grouper(self, obj):
243
243
raise ValueError ("The grouper level {0} is not valid" .format (level ))
244
244
245
245
# possibly sort
246
- if not ax .is_monotonic :
246
+ if ( self . sort or sort ) and not ax .is_monotonic :
247
247
indexer = self .indexer = ax .argsort (kind = 'quicksort' )
248
248
ax = ax .take (indexer )
249
249
obj = obj .take (indexer , axis = self .axis , convert = False , is_copy = False )
@@ -1608,6 +1608,7 @@ def __init__(self, index, grouper=None, obj=None, name=None, level=None,
1608
1608
self .grouper = _convert_grouper (index , grouper )
1609
1609
self .index = index
1610
1610
self .sort = sort
1611
+ self .obj = obj
1611
1612
1612
1613
# right place for this?
1613
1614
if isinstance (grouper , (Series , Index )) and name is None :
@@ -1684,7 +1685,8 @@ def __init__(self, index, grouper=None, obj=None, name=None, level=None,
1684
1685
elif isinstance (self .grouper , Grouper ):
1685
1686
1686
1687
# get the new grouper
1687
- grouper = self .grouper .get_binner_for_grouping (obj )
1688
+ grouper = self .grouper .get_binner_for_grouping (self .obj )
1689
+ self .obj = self .grouper .obj
1688
1690
self .grouper = grouper
1689
1691
if self .name is None :
1690
1692
self .name = grouper .name
0 commit comments