Skip to content

Commit 2cb1ef2

Browse files
committed
changed order of mask=isna(values)
1 parent cbf77de commit 2cb1ef2

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

pandas/core/groupby/ops.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,10 @@ def _call_cython_op(
371371

372372
is_datetimelike = dtype.kind in "mM"
373373

374+
if self.how in ["any", "all"]:
375+
if mask is None:
376+
mask = isna(values)
377+
374378
if is_datetimelike:
375379
values = values.view("int64")
376380
is_numeric = True
@@ -379,25 +383,23 @@ def _call_cython_op(
379383
if values.dtype == "float16":
380384
values = values.astype(np.float32)
381385

382-
values = values.T
383-
if mask is not None:
384-
mask = mask.T
385-
if result_mask is not None:
386-
result_mask = result_mask.T
387-
388386
if self.how in ["any", "all"]:
389-
if mask is None:
390-
mask = isna(values)
391387
if dtype == object:
392388
if kwargs["skipna"]:
393389
# GH#37501: don't raise on pd.NA when skipna=True
394-
if mask.any():
390+
if mask is not None and mask.any():
395391
# mask on original values computed separately
396392
values = values.copy()
397393
values[mask] = True
398394
values = values.astype(bool, copy=False).view(np.int8)
399395
is_numeric = True
400396

397+
values = values.T
398+
if mask is not None:
399+
mask = mask.T
400+
if result_mask is not None:
401+
result_mask = result_mask.T
402+
401403
out_shape = self._get_output_shape(ngroups, values)
402404
func = self._get_cython_function(self.kind, self.how, values.dtype, is_numeric)
403405
values = self._get_cython_vals(values)

0 commit comments

Comments
 (0)