@@ -84,6 +84,7 @@ class providing the base-class of operations.
84
84
needs_i8_conversion ,
85
85
pandas_dtype ,
86
86
)
87
+ from pandas .core .dtypes .dtypes import CategoricalDtype
87
88
from pandas .core .dtypes .missing import (
88
89
isna ,
89
90
na_value_for_dtype ,
@@ -2009,7 +2010,7 @@ def _convert_result_dtype(
2009
2010
2010
2011
converted_result_values = np .empty (out_shape , dtype = out_dtype )
2011
2012
if func not in cy_op .cast_blocklist :
2012
- res_dtype = cy_op ._get_result_dtype (timezone_free_orig_input_values .dtype )
2013
+ res_dtype = cy_op ._get_result_dtype (input_values .dtype )
2013
2014
converted_result_values = maybe_downcast_to_dtype (
2014
2015
converted_result_values , res_dtype
2015
2016
)
@@ -2052,9 +2053,11 @@ def _preprocess_input_values(self, func, input_values: ArrayLike) -> ArrayLike:
2052
2053
input_values = input_values .view ("int64" )
2053
2054
elif dtype .kind == "b" :
2054
2055
input_values = input_values .view ("uint8" )
2055
-
2056
- if input_values .dtype == "float16" :
2056
+ elif input_values .dtype == "float16" :
2057
2057
input_values = input_values .astype (np .float32 )
2058
+ elif isinstance (dtype , CategoricalDtype ):
2059
+ input_values = input_values [0 ].astype (bool )
2060
+ input_values = input_values [None , :]
2058
2061
2059
2062
if func in ["any" , "all" ]:
2060
2063
input_values = input_values .astype (bool , copy = False ).view (np .int8 )
0 commit comments