diff --git a/pandas/_libs/lib.pyx b/pandas/_libs/lib.pyx index 1fd72cf763e6b..d80cc482be5b3 100644 --- a/pandas/_libs/lib.pyx +++ b/pandas/_libs/lib.pyx @@ -549,41 +549,6 @@ def astype_intsafe(ndarray[object] arr, new_dtype): return result -@cython.wraparound(False) -@cython.boundscheck(False) -def astype_unicode(arr: ndarray, skipna: bool=False) -> ndarray[object]: - """ - Convert all elements in an array to unicode. - - Parameters - ---------- - arr : ndarray - The array whose elements we are casting. - skipna : bool, default False - Whether or not to coerce nulls to their stringified form - (e.g. NaN becomes 'nan'). - - Returns - ------- - casted_arr : ndarray - A new array with the input array's elements casted. - """ - cdef: - object arr_i - Py_ssize_t i, n = arr.size - ndarray[object] result = np.empty(n, dtype=object) - - for i in range(n): - arr_i = arr[i] - - if not (skipna and checknull(arr_i)): - arr_i = unicode(arr_i) - - result[i] = arr_i - - return result - - @cython.wraparound(False) @cython.boundscheck(False) def astype_str(arr: ndarray, skipna: bool=False) -> ndarray[object]: @@ -1321,10 +1286,6 @@ def infer_dtype(value: object, skipna: object=None) -> str: if is_string_array(values, skipna=skipna): return 'string' - elif isinstance(val, unicode): - if is_unicode_array(values, skipna=skipna): - return 'unicode' - elif isinstance(val, bytes): if is_bytes_array(values, skipna=skipna): return 'bytes' @@ -1596,22 +1557,6 @@ cpdef bint is_string_array(ndarray values, bint skipna=False): return validator.validate(values) -cdef class UnicodeValidator(Validator): - cdef inline bint is_value_typed(self, object value) except -1: - return isinstance(value, unicode) - - cdef inline bint is_array_typed(self) except -1: - return issubclass(self.dtype.type, np.unicode_) - - -cdef bint is_unicode_array(ndarray values, bint skipna=False): - cdef: - UnicodeValidator validator = UnicodeValidator(len(values), - values.dtype, - skipna=skipna) - return validator.validate(values) - - cdef class BytesValidator(Validator): cdef inline bint is_value_typed(self, object value) except -1: return isinstance(value, bytes) diff --git a/pandas/core/dtypes/cast.py b/pandas/core/dtypes/cast.py index a2509226bcd8e..adaddf844ea9c 100644 --- a/pandas/core/dtypes/cast.py +++ b/pandas/core/dtypes/cast.py @@ -636,10 +636,6 @@ def astype_nansafe(arr, dtype, copy=True, skipna=False): dtype = pandas_dtype(dtype) if issubclass(dtype.type, str): - return lib.astype_unicode(arr.ravel(), - skipna=skipna).reshape(arr.shape) - - elif issubclass(dtype.type, str): return lib.astype_str(arr.ravel(), skipna=skipna).reshape(arr.shape)