Skip to content

Commit f24f13b

Browse files
committed
Preserving dtype in Series.any/all function with level keyword pandas-dev#33449
1 parent c6c5367 commit f24f13b

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

pandas/core/generic.py

+2
Original file line numberDiff line numberDiff line change
@@ -11222,6 +11222,8 @@ def logical_func(self, axis=0, bool_only=None, skipna=True, level=None, **kwargs
1122211222
raise NotImplementedError(
1122311223
"Option bool_only is not implemented with option level."
1122411224
)
11225+
if isinstance(self, pd.Series) and self.dtype.name == "boolean":
11226+
return self._agg_by_level(name, axis=axis, level=level, skipna=skipna).astype("boolean")
1122511227
return self._agg_by_level(name, axis=axis, level=level, skipna=skipna)
1122611228
return self._reduce(
1122711229
func,

pandas/tests/reductions/test_reductions.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -912,8 +912,8 @@ def test_all_any_boolean(self):
912912
index=[0, 0, 1, 1, 2, 2],
913913
dtype="boolean",
914914
)
915-
tm.assert_series_equal(s.all(level=0), Series([False, True, False]))
916-
tm.assert_series_equal(s.any(level=0), Series([False, True, True]))
915+
tm.assert_series_equal(s.all(level=0), Series([False, True, False], dtype="boolean"))
916+
tm.assert_series_equal(s.any(level=0), Series([False, True, True], dtype="boolean"))
917917

918918
def test_timedelta64_analytics(self):
919919

0 commit comments

Comments
 (0)