From 3323457db436359e1ff9313c4d3f348bccc44de9 Mon Sep 17 00:00:00 2001 From: Daniel Saxton Date: Sun, 10 May 2020 16:20:23 -0500 Subject: [PATCH] CLN: Don't use astype_nansafe after to_numpy --- pandas/core/arrays/boolean.py | 4 +--- pandas/core/arrays/integer.py | 10 ++++------ pandas/tests/arrays/boolean/test_astype.py | 2 +- pandas/tests/arrays/integer/test_dtypes.py | 2 +- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/pandas/core/arrays/boolean.py b/pandas/core/arrays/boolean.py index b1d318d4d9678..82aa59b584d1e 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, @@ -409,8 +408,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 3ca7e028913c6..e85b5e951901a 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, @@ -470,14 +469,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="