Skip to content

Commit 7704774

Browse files
author
tp
committed
Added repr string for Grouper
1 parent e2a0251 commit 7704774

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

pandas/core/groupby.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,16 @@ def _get_binner_for_grouping(self, obj):
336336
def groups(self):
337337
return self.grouper.groups
338338

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

340350
class GroupByPlot(PandasObject):
341351
"""

pandas/core/resample.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ def __init__(self, freq='Min', closed=None, label=None, how='mean',
10571057
convention=None, base=0, **kwargs):
10581058
freq = to_offset(freq)
10591059

1060-
end_types = set(['M', 'A', 'Q', 'BM', 'BA', 'BQ', 'W'])
1060+
end_types = {'M', 'A', 'Q', 'BM', 'BA', 'BQ', 'W'}
10611061
rule = freq.rule_code
10621062
if (rule in end_types or
10631063
('-' in rule and rule[:rule.find('-')] in end_types)):
@@ -1293,6 +1293,28 @@ def _get_time_period_bins(self, ax):
12931293

12941294
return binner, bins, labels
12951295

1296+
# _init_defaults is used in __repr__below
1297+
_init_defaults = Grouper._init_defaults.copy()
1298+
_init_defaults.update(freq='Min', how='mean', nperiods=None, axis=0,
1299+
fill_method=None, limit=None, loffset=None,
1300+
kind=None, convention='e', base=0, sort=True)
1301+
def __repr__(self):
1302+
defaults = self._init_defaults.copy()
1303+
end_types = {'M', 'A', 'Q', 'BM', 'BA', 'BQ', 'W'}
1304+
rule = self.freq.rule_code
1305+
if (rule in end_types or
1306+
('-' in rule and rule[:rule.find('-')] in end_types)):
1307+
defaults.update(closed='right', label='right')
1308+
else:
1309+
defaults.update(closed='left', label='left')
1310+
1311+
attrs = {k: v for k, v in self.__dict__.items()
1312+
if k in defaults and v != defaults[k]}
1313+
attrs['freq'] = attrs['freq'].freqstr
1314+
attrs = ", ".join("{}={!r}".format(k, v) for k, v in attrs.items())
1315+
cls_name = self.__class__.__name__
1316+
return "{}({})".format(cls_name, attrs)
1317+
12961318

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

0 commit comments

Comments
 (0)