Skip to content

Commit

Permalink
Backport PR pandas-dev#25102: BUG: Fixing regression in DataFrame.all…
Browse files Browse the repository at this point in the history
… and DataFrame.any with bool_only=True (pandas-dev#25140)
  • Loading branch information
meeseeksmachine authored and jreback committed Feb 4, 2019
1 parent d8fe711 commit c42526f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
4 changes: 1 addition & 3 deletions doc/source/whatsnew/v0.24.2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ including other versions of pandas.
Fixed Regressions
^^^^^^^^^^^^^^^^^

-
-
-
- Fixed regression in :meth:`DataFrame.all` and :meth:`DataFrame.any` where ``bool_only=True`` was ignored (:issue:`25101`)

.. _whatsnew_0242.enhancements:

Expand Down
3 changes: 2 additions & 1 deletion pandas/core/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -7455,7 +7455,8 @@ def f(x):
if filter_type is None or filter_type == 'numeric':
data = self._get_numeric_data()
elif filter_type == 'bool':
data = self
# GH 25101, # GH 24434
data = self._get_bool_data() if axis == 0 else self
else: # pragma: no cover
msg = ("Generating numeric_only data with filter_type {f}"
"not supported.".format(f=filter_type))
Expand Down
20 changes: 20 additions & 0 deletions pandas/tests/frame/test_analytics.py
Original file line number Diff line number Diff line change
Expand Up @@ -1442,6 +1442,26 @@ def test_any_datetime(self):
expected = Series([True, True, True, False])
tm.assert_series_equal(result, expected)

def test_any_all_bool_only(self):

# GH 25101
df = DataFrame({"col1": [1, 2, 3],
"col2": [4, 5, 6],
"col3": [None, None, None]})

result = df.all(bool_only=True)
expected = Series(dtype=np.bool)
tm.assert_series_equal(result, expected)

df = DataFrame({"col1": [1, 2, 3],
"col2": [4, 5, 6],
"col3": [None, None, None],
"col4": [False, False, True]})

result = df.all(bool_only=True)
expected = Series({"col4": False})
tm.assert_series_equal(result, expected)

@pytest.mark.parametrize('func, data, expected', [
(np.any, {}, False),
(np.all, {}, True),
Expand Down

0 comments on commit c42526f

Please sign in to comment.