From 3c7e5499dda197acc0c6a41e3447424e8045f041 Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Thu, 10 Jun 2021 09:10:21 +0200 Subject: [PATCH] PERF: fix regression in reductions for boolean/integer data (assume no missing values) --- pandas/core/nanops.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pandas/core/nanops.py b/pandas/core/nanops.py index 673c482bced18..85c54b02be60c 100644 --- a/pandas/core/nanops.py +++ b/pandas/core/nanops.py @@ -245,7 +245,8 @@ def _maybe_get_mask( """ if mask is None: if is_bool_dtype(values.dtype) or is_integer_dtype(values.dtype): - return np.broadcast_to(False, values.shape) + # Boolean data cannot contain nulls, so signal via mask being None + return None if skipna or needs_i8_conversion(values.dtype): mask = isna(values) @@ -1449,7 +1450,10 @@ def _maybe_null_out( result[null_mask] = None elif result is not NaT: if check_below_min_count(shape, mask, min_count): - result = np.nan + if isinstance(result, np.ndarray): + result = np.broadcast_to(np.nan, result.shape) + else: + result = np.nan return result