Skip to content

Commit 2ed182e

Browse files
springcoiljreback
authored andcommitted
Updating tests file Cleaning up
1 parent b89fc70 commit 2ed182e

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

doc/source/whatsnew/v0.15.2.txt

+1
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ Experimental
9090

9191
Bug Fixes
9292
~~~~~~~~~
93+
- Report a ``TypeError`` when invalid/no paramaters are passed in a groupby (:issue:`8015`)
9394
- Bug in packaging pandas with ``py2app/cx_Freeze`` (:issue:`8602`, :issue:`8831`)
9495
- Bug in ``groupby`` signatures that didn't include \*args or \*\*kwargs (:issue:`8733`).
9596
- ``io.data.Options`` now raises ``RemoteDataError`` when no expiry dates are available from Yahoo and when it receives no data from Yahoo (:issue:`8761`), (:issue:`8783`).

pandas/core/generic.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -2875,10 +2875,12 @@ def groupby(self, by=None, axis=0, level=None, as_index=True, sort=True,
28752875
GroupBy object
28762876
28772877
"""
2878-
28792878
from pandas.core.groupby import groupby
2879+
2880+
if level is None and by is None:
2881+
raise TypeError("You have to supply one of 'by' and 'level'")
28802882
axis = self._get_axis_number(axis)
2881-
return groupby(self, by, axis=axis, level=level, as_index=as_index,
2883+
return groupby(self, by=by, axis=axis, level=level, as_index=as_index,
28822884
sort=sort, group_keys=group_keys, squeeze=squeeze)
28832885

28842886
def asfreq(self, freq, method=None, how=None, normalize=False):

pandas/tests/test_groupby.py

+16-2
Original file line numberDiff line numberDiff line change
@@ -1961,6 +1961,9 @@ def test_groupby_level(self):
19611961
# raise exception for non-MultiIndex
19621962
self.assertRaises(ValueError, self.df.groupby, level=1)
19631963

1964+
1965+
1966+
19641967
def test_groupby_level_index_names(self):
19651968
## GH4014 this used to raise ValueError since 'exp'>1 (in py2)
19661969
df = DataFrame({'exp' : ['A']*3 + ['B']*3, 'var1' : lrange(6),}).set_index('exp')
@@ -1999,6 +2002,17 @@ def test_groupby_level_apply(self):
19992002
result = frame['A'].groupby(level=0).count()
20002003
self.assertEqual(result.index.name, 'first')
20012004

2005+
def test_groupby_args(self):
2006+
#PR8618 and issue 8015
2007+
frame = self.mframe
2008+
def j():
2009+
frame.groupby()
2010+
self.assertRaisesRegexp(TypeError, "You have to supply one of 'by' and 'level'", j)
2011+
2012+
def k():
2013+
frame.groupby(by=None, level=None)
2014+
self.assertRaisesRegexp(TypeError, "You have to supply one of 'by' and 'level'", k)
2015+
20022016
def test_groupby_level_mapper(self):
20032017
frame = self.mframe
20042018
deleveled = frame.reset_index()
@@ -3689,8 +3703,8 @@ def test_cumcount(self):
36893703
assert_series_equal(expected, sg.cumcount())
36903704

36913705
def test_cumcount_empty(self):
3692-
ge = DataFrame().groupby()
3693-
se = Series().groupby()
3706+
ge = DataFrame().groupby(level=0)
3707+
se = Series().groupby(level=0)
36943708

36953709
e = Series(dtype='int64') # edge case, as this is usually considered float
36963710

0 commit comments

Comments
 (0)