diff --git a/pandas/core/internals.py b/pandas/core/internals.py index b0a6086c450ef..e8fab3748bacf 100644 --- a/pandas/core/internals.py +++ b/pandas/core/internals.py @@ -655,7 +655,7 @@ def _astype(self, dtype, copy=False, errors='raise', values=None, # astype formatting else: - values = self.values + values = self.get_values() else: values = self.get_values(dtype=dtype) diff --git a/pandas/tests/extension/base/casting.py b/pandas/tests/extension/base/casting.py index 74fe8f196a089..7146443bf8de5 100644 --- a/pandas/tests/extension/base/casting.py +++ b/pandas/tests/extension/base/casting.py @@ -16,3 +16,8 @@ def test_tolist(self, data): result = pd.Series(data).tolist() expected = list(data) assert result == expected + + def test_astype_str(self, data): + result = pd.Series(data[:5]).astype(str) + expected = pd.Series(data[:5].astype(str)) + self.assert_series_equal(result, expected) diff --git a/pandas/tests/extension/json/test_json.py b/pandas/tests/extension/json/test_json.py index 5e9639c487c37..87668cc1196b6 100644 --- a/pandas/tests/extension/json/test_json.py +++ b/pandas/tests/extension/json/test_json.py @@ -127,7 +127,12 @@ def test_sort_values_missing(self, data_missing_for_sorting, ascending): class TestCasting(base.BaseCastingTests): - pass + @pytest.mark.xfail + def test_astype_str(self): + """This currently fails in NumPy on np.array(self, dtype=str) with + + *** ValueError: setting an array element with a sequence + """ class TestGroupby(base.BaseGroupbyTests):