diff --git a/pandas/core/arrays/boolean.py b/pandas/core/arrays/boolean.py index 9bc3d1276c79d..6b7b282bfd940 100644 --- a/pandas/core/arrays/boolean.py +++ b/pandas/core/arrays/boolean.py @@ -9,7 +9,6 @@ from pandas.compat import set_function_name from pandas.compat.numpy import function as nv -from pandas.core.dtypes.cast import astype_nansafe from pandas.core.dtypes.common import ( is_bool_dtype, is_extension_array_dtype, @@ -399,8 +398,7 @@ def astype(self, dtype, copy: bool = True) -> ArrayLike: if is_float_dtype(dtype): na_value = np.nan # coerce - data = self.to_numpy(na_value=na_value) - return astype_nansafe(data, dtype, copy=False) + return self.to_numpy(dtype=dtype, na_value=na_value, copy=False) def _values_for_argsort(self) -> np.ndarray: """ diff --git a/pandas/core/arrays/integer.py b/pandas/core/arrays/integer.py index 59954f548fd33..35a0325f4f1bc 100644 --- a/pandas/core/arrays/integer.py +++ b/pandas/core/arrays/integer.py @@ -10,7 +10,6 @@ from pandas.compat.numpy import function as nv from pandas.util._decorators import cache_readonly -from pandas.core.dtypes.cast import astype_nansafe from pandas.core.dtypes.common import ( is_bool_dtype, is_datetime64_dtype, @@ -457,14 +456,13 @@ def astype(self, dtype, copy: bool = True) -> ArrayLike: # coerce if is_float_dtype(dtype): # In astype, we consider dtype=float to also mean na_value=np.nan - kwargs = dict(na_value=np.nan) + na_value = np.nan elif is_datetime64_dtype(dtype): - kwargs = dict(na_value=np.datetime64("NaT")) + na_value = np.datetime64("NaT") else: - kwargs = {} + na_value = lib.no_default - data = self.to_numpy(dtype=dtype, **kwargs) - return astype_nansafe(data, dtype, copy=False) + return self.to_numpy(dtype=dtype, na_value=na_value, copy=False) def _values_for_argsort(self) -> np.ndarray: """ diff --git a/pandas/tests/arrays/boolean/test_astype.py b/pandas/tests/arrays/boolean/test_astype.py index 90fe9a6905d40..57cec70262526 100644 --- a/pandas/tests/arrays/boolean/test_astype.py +++ b/pandas/tests/arrays/boolean/test_astype.py @@ -20,7 +20,7 @@ def test_astype(): tm.assert_numpy_array_equal(result, expected) result = arr.astype("str") - expected = np.array(["True", "False", ""], dtype="object") + expected = np.array(["True", "False", ""], dtype=""], dtype=object) + expected = np.array(["1", "2", ""], dtype="