From f845215ef2a54cb01e6d42ad731b94b452c11fd8 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Sun, 14 Apr 2019 16:53:55 -0500 Subject: [PATCH 1/3] Removed noop _assert_grouper --- pandas/core/groupby/groupby.py | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/pandas/core/groupby/groupby.py b/pandas/core/groupby/groupby.py index 2494cf55d2e0d..f3ad3fd66b617 100644 --- a/pandas/core/groupby/groupby.py +++ b/pandas/core/groupby/groupby.py @@ -378,24 +378,15 @@ def __unicode__(self): # TODO: Better unicode/repr for GroupBy object return object.__repr__(self) - def _assure_grouper(self): - """ - We create the grouper on instantiation sub-classes may have a - different policy. - """ - pass - @property def groups(self): """ Dict {group name -> group labels}. """ - self._assure_grouper() return self.grouper.groups @property def ngroups(self): - self._assure_grouper() return self.grouper.ngroups @property @@ -403,7 +394,6 @@ def indices(self): """ Dict {group name -> group indices}. """ - self._assure_grouper() return self.grouper.indices def _get_indices(self, names): From 610ce6e26ab2663c3548c4a544e48b4c979e13e9 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Sun, 14 Apr 2019 17:24:44 -0500 Subject: [PATCH 2/3] Removed overridden NDFrame methods --- pandas/core/groupby/generic.py | 34 ---------------------------------- 1 file changed, 34 deletions(-) diff --git a/pandas/core/groupby/generic.py b/pandas/core/groupby/generic.py index b6fc31bb6f015..1c5a69e164c86 100644 --- a/pandas/core/groupby/generic.py +++ b/pandas/core/groupby/generic.py @@ -69,27 +69,6 @@ def _cython_agg_general(self, how, alt=None, numeric_only=True, how, alt=alt, numeric_only=numeric_only, min_count=min_count) return self._wrap_agged_blocks(new_items, new_blocks) - def _wrap_agged_blocks(self, items, blocks): - obj = self._obj_with_exclusions - - new_axes = list(obj._data.axes) - - # more kludge - if self.axis == 0: - new_axes[0], new_axes[1] = new_axes[1], self.grouper.result_index - else: - new_axes[self.axis] = self.grouper.result_index - - # Make sure block manager integrity check passes. - assert new_axes[0].equals(items) - new_axes[0] = items - - mgr = BlockManager(blocks, new_axes) - - new_obj = type(obj)(mgr) - - return self._post_process_cython_aggregate(new_obj) - _block_agg_axis = 0 def _cython_agg_blocks(self, how, alt=None, numeric_only=True, @@ -166,19 +145,6 @@ def _cython_agg_blocks(self, how, alt=None, numeric_only=True, return new_items, new_blocks - def _get_data_to_aggregate(self): - obj = self._obj_with_exclusions - if self.axis == 0: - return obj.swapaxes(0, 1)._data, 1 - else: - return obj._data, self.axis - - def _post_process_cython_aggregate(self, obj): - # undoing kludge from below - if self.axis == 0: - obj = obj.swapaxes(0, 1) - return obj - def aggregate(self, arg, *args, **kwargs): _level = kwargs.pop('_level', None) From 89bd6269b80a1527c6486adbeff6459c0a1b878f Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 15 Apr 2019 09:07:17 -0700 Subject: [PATCH 3/3] Revert "Removed noop _assert_grouper" This reverts commit f845215ef2a54cb01e6d42ad731b94b452c11fd8. --- pandas/core/groupby/groupby.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pandas/core/groupby/groupby.py b/pandas/core/groupby/groupby.py index 741c296e48535..b1936a8f5121f 100644 --- a/pandas/core/groupby/groupby.py +++ b/pandas/core/groupby/groupby.py @@ -377,15 +377,24 @@ def __unicode__(self): # TODO: Better unicode/repr for GroupBy object return object.__repr__(self) + def _assure_grouper(self): + """ + We create the grouper on instantiation sub-classes may have a + different policy. + """ + pass + @property def groups(self): """ Dict {group name -> group labels}. """ + self._assure_grouper() return self.grouper.groups @property def ngroups(self): + self._assure_grouper() return self.grouper.ngroups @property @@ -393,6 +402,7 @@ def indices(self): """ Dict {group name -> group indices}. """ + self._assure_grouper() return self.grouper.indices def _get_indices(self, names):