From ee4ce0f8087436e903497076ea6137521d1e177d Mon Sep 17 00:00:00 2001 From: Matt Roeschke Date: Mon, 19 Dec 2016 22:32:03 -0800 Subject: [PATCH] TST: Groupby.filter dropna=False with empty group (#10780) Add test for dropna = True --- pandas/tests/groupby/test_filters.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pandas/tests/groupby/test_filters.py b/pandas/tests/groupby/test_filters.py index 81bf977e924d8..fb0f52886ec31 100644 --- a/pandas/tests/groupby/test_filters.py +++ b/pandas/tests/groupby/test_filters.py @@ -596,6 +596,19 @@ def test_filter_non_bool_raises(self): with tm.assertRaisesRegexp(TypeError, 'filter function returned a.*'): df.groupby('a').filter(lambda g: g.c.mean()) + def test_filter_dropna_with_empty_groups(self): + # GH 10780 + data = pd.Series(np.random.rand(9), index=np.repeat([1, 2, 3], 3)) + groupped = data.groupby(level=0) + result_false = groupped.filter(lambda x: x.mean() > 1, dropna=False) + expected_false = pd.Series([np.nan] * 9, + index=np.repeat([1, 2, 3], 3)) + tm.assert_series_equal(result_false, expected_false) + + result_true = groupped.filter(lambda x: x.mean() > 1, dropna=True) + expected_true = pd.Series(index=pd.Index([], dtype=int)) + tm.assert_series_equal(result_true, expected_true) + def assert_fp_equal(a, b): assert (np.abs(a - b) < 1e-12).all()