Skip to content

Commit d4067fc

Browse files
author
tp
committed
Added repr string for Grouper
1 parent 458c1dc commit d4067fc

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

pandas/core/groupby.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,17 @@ def _set_grouper(self, obj, sort=False):
333333
def groups(self):
334334
return self.grouper.groups
335335

336+
_init_defaults = dict(key=None, level=None, freq=None, axis=0,
337+
sort=False)
338+
339+
def __repr__(self):
340+
defaults = self._init_defaults
341+
attrs = {k: v for k, v in self.__dict__.items()
342+
if k in defaults and v != defaults[k]}
343+
attrs = ", ".join("{}={!r}".format(k, v) for k, v in attrs.items())
344+
cls_name = self.__class__.__name__
345+
return "{}({})".format(cls_name, attrs)
346+
336347

337348
class GroupByPlot(PandasObject):
338349
"""

pandas/core/resample.py

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1028,7 +1028,7 @@ def __init__(self, freq='Min', closed=None, label=None, how='mean',
10281028
convention=None, base=0, **kwargs):
10291029
freq = to_offset(freq)
10301030

1031-
end_types = set(['M', 'A', 'Q', 'BM', 'BA', 'BQ', 'W'])
1031+
self._end_types = end_types = {'M', 'A', 'Q', 'BM', 'BA', 'BQ', 'W'}
10321032
rule = freq.rule_code
10331033
if (rule in end_types or
10341034
('-' in rule and rule[:rule.find('-')] in end_types)):
@@ -1286,6 +1286,29 @@ def _get_period_bins(self, ax):
12861286

12871287
return binner, bins, labels
12881288

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+
12891312

12901313
def _take_new_index(obj, indexer, new_index, axis=0):
12911314
from pandas.core.api import Series, DataFrame

0 commit comments

Comments
 (0)