diff --git a/pandas/core/arrays/arrow/array.py b/pandas/core/arrays/arrow/array.py index c18f06c3a126d..bf9a53a5490f9 100644 --- a/pandas/core/arrays/arrow/array.py +++ b/pandas/core/arrays/arrow/array.py @@ -1478,7 +1478,13 @@ def to_numpy( return result def map(self, mapper, na_action: Literal["ignore"] | None = None): - if is_numeric_dtype(self.dtype): + if not is_string_dtype(self.dtype) and any( + [ + is_numeric_dtype(self.dtype) + or pa.types.is_date(self.dtype.pyarrow_dtype) + or pa.types.is_timestamp(self.dtype.pyarrow_dtype) + ] + ): return map_array(self.to_numpy(), mapper, na_action=na_action) else: return super().map(mapper, na_action)