File tree Expand file tree Collapse file tree 1 file changed +22
-26
lines changed Expand file tree Collapse file tree 1 file changed +22
-26
lines changed Original file line number Diff line number Diff line change @@ -760,32 +760,28 @@ def _str_map(
760
760
convert = convert and not np .all (mask )
761
761
762
762
if is_integer_dtype (dtype ) or is_bool_dtype (dtype ):
763
- # if is_integer_dtype(dtype):
764
- # na_value = np.nan
765
- # else:
766
- # na_value = False
767
- try :
768
- result = lib .map_infer_mask (
769
- arr ,
770
- f ,
771
- mask .view ("uint8" ),
772
- convert = False ,
773
- na_value = na_value ,
774
- dtype = np .dtype (cast (type , dtype )),
775
- )
776
- return result
777
-
778
- except ValueError :
779
- result = lib .map_infer_mask (
780
- arr ,
781
- f ,
782
- mask .view ("uint8" ),
783
- convert = False ,
784
- na_value = na_value ,
785
- )
786
- if convert and result .dtype == object :
787
- result = lib .maybe_convert_objects (result )
788
- return result
763
+ na_value_is_na = isna (na_value )
764
+ if na_value_is_na :
765
+ if is_integer_dtype (dtype ):
766
+ na_value = 0
767
+ else :
768
+ na_value = True
769
+
770
+ result = lib .map_infer_mask (
771
+ arr ,
772
+ f ,
773
+ mask .view ("uint8" ),
774
+ convert = False ,
775
+ na_value = na_value ,
776
+ dtype = np .dtype (cast (type , dtype )),
777
+ )
778
+ if na_value_is_na and mask .any ():
779
+ if is_integer_dtype (dtype ):
780
+ result = result .astype ("float64" )
781
+ else :
782
+ result = result .astype ("object" )
783
+ result [mask ] = np .nan
784
+ return result
789
785
790
786
elif is_string_dtype (dtype ) and not is_object_dtype (dtype ):
791
787
# i.e. StringDtype
You can’t perform that action at this time.
0 commit comments