@@ -1028,7 +1028,7 @@ def __init__(self, freq='Min', closed=None, label=None, how='mean',
1028
1028
convention = None , base = 0 , ** kwargs ):
1029
1029
freq = to_offset (freq )
1030
1030
1031
- end_types = set ([ 'M' , 'A' , 'Q' , 'BM' , 'BA' , 'BQ' , 'W' ])
1031
+ self . _end_types = end_types = { 'M' , 'A' , 'Q' , 'BM' , 'BA' , 'BQ' , 'W' }
1032
1032
rule = freq .rule_code
1033
1033
if (rule in end_types or
1034
1034
('-' in rule and rule [:rule .find ('-' )] in end_types )):
@@ -1286,6 +1286,29 @@ def _get_period_bins(self, ax):
1286
1286
1287
1287
return binner , bins , labels
1288
1288
1289
+ # _init_defaults is used in __repr__below
1290
+ _init_defaults = Grouper ._init_defaults .copy ()
1291
+ _init_defaults .update (freq = 'Min' , how = 'mean' , nperiods = None , axis = 0 ,
1292
+ fill_method = None , limit = None , loffset = None ,
1293
+ kind = None , convention = 'e' , base = 0 , sort = True )
1294
+
1295
+ def __repr__ (self ):
1296
+ defaults = self ._init_defaults .copy ()
1297
+ end_types = self ._end_types
1298
+ rule = self .freq .rule_code
1299
+ if (rule in end_types or
1300
+ ('-' in rule and rule [:rule .find ('-' )] in end_types )):
1301
+ defaults .update (closed = 'right' , label = 'right' )
1302
+ else :
1303
+ defaults .update (closed = 'left' , label = 'left' )
1304
+
1305
+ attrs = {k : v for k , v in self .__dict__ .items ()
1306
+ if k in defaults and v != defaults [k ]}
1307
+ attrs ['freq' ] = attrs ['freq' ].freqstr
1308
+ attrs = ", " .join ("{}={!r}" .format (k , v ) for k , v in attrs .items ())
1309
+ cls_name = self .__class__ .__name__
1310
+ return "{}({})" .format (cls_name , attrs )
1311
+
1289
1312
1290
1313
def _take_new_index (obj , indexer , new_index , axis = 0 ):
1291
1314
from pandas .core .api import Series , DataFrame
0 commit comments