From 4e18c8276ff3a8e517c98a5989840ac7e2feba1e Mon Sep 17 00:00:00 2001 From: peadarcoyle Date: Mon, 27 Oct 2014 23:33:26 +0100 Subject: [PATCH] Updating tests file Cleaning up --- pandas/core/generic.py | 6 ++++-- pandas/tests/test_groupby.py | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/pandas/core/generic.py b/pandas/core/generic.py index 52f37ee24f69a..059cdff8996f7 100644 --- a/pandas/core/generic.py +++ b/pandas/core/generic.py @@ -2875,10 +2875,12 @@ def groupby(self, by=None, axis=0, level=None, as_index=True, sort=True, GroupBy object """ - from pandas.core.groupby import groupby + + if level is None and by is None: + raise TypeError("You have to supply one of 'by' and 'level'") axis = self._get_axis_number(axis) - return groupby(self, by, axis=axis, level=level, as_index=as_index, + return groupby(self, by=by, axis=axis, level=level, as_index=as_index, sort=sort, group_keys=group_keys, squeeze=squeeze) def asfreq(self, freq, method=None, how=None, normalize=False): diff --git a/pandas/tests/test_groupby.py b/pandas/tests/test_groupby.py index ef3fc03fc8d22..bf24eda60b986 100644 --- a/pandas/tests/test_groupby.py +++ b/pandas/tests/test_groupby.py @@ -1961,6 +1961,9 @@ def test_groupby_level(self): # raise exception for non-MultiIndex self.assertRaises(ValueError, self.df.groupby, level=1) + + + def test_groupby_level_index_names(self): ## GH4014 this used to raise ValueError since 'exp'>1 (in py2) df = DataFrame({'exp' : ['A']*3 + ['B']*3, 'var1' : lrange(6),}).set_index('exp') @@ -1999,6 +2002,17 @@ def test_groupby_level_apply(self): result = frame['A'].groupby(level=0).count() self.assertEqual(result.index.name, 'first') + def test_groupby_args(self): + #PR8618 and issue 8015 + frame = self.mframe + def j(): + frame.groupby() + self.assertRaisesRegexp(TypeError, "You have to supply one of 'by' and 'level'", j) + + def k(): + frame.groupby(by=None, level=None) + self.assertRaisesRegexp(TypeError, "You have to supply one of 'by' and 'level'", k) + def test_groupby_level_mapper(self): frame = self.mframe deleveled = frame.reset_index() @@ -3689,8 +3703,8 @@ def test_cumcount(self): assert_series_equal(expected, sg.cumcount()) def test_cumcount_empty(self): - ge = DataFrame().groupby() - se = Series().groupby() + ge = DataFrame().groupby(level=0) + se = Series().groupby(level=0) e = Series(dtype='int64') # edge case, as this is usually considered float