From b14bf93094cb0b19a03f853f4468fe872a8dae40 Mon Sep 17 00:00:00 2001 From: Randolf Scholz Date: Tue, 25 Jun 2024 18:06:56 +0200 Subject: [PATCH 1/2] lookup array if applicable --- pandas/core/arrays/categorical.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/arrays/categorical.py b/pandas/core/arrays/categorical.py index c656e4bf1e20c..a082a58c586db 100644 --- a/pandas/core/arrays/categorical.py +++ b/pandas/core/arrays/categorical.py @@ -449,7 +449,7 @@ def __init__( if isinstance(values.dtype, ArrowDtype) and issubclass( values.dtype.type, CategoricalDtypeType ): - arr = values._pa_array.combine_chunks() + arr = getattr(values, "array", values)._pa_array.combine_chunks() categories = arr.dictionary.to_pandas(types_mapper=ArrowDtype) codes = arr.indices.to_numpy() dtype = CategoricalDtype(categories, values.dtype.pyarrow_dtype.ordered) From 2206e5c85cf9852d8d87ed50fcd15e021ab51eb6 Mon Sep 17 00:00:00 2001 From: Randolf Scholz Date: Wed, 26 Jun 2024 10:58:07 +0200 Subject: [PATCH 2/2] use extract_array --- pandas/core/arrays/categorical.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandas/core/arrays/categorical.py b/pandas/core/arrays/categorical.py index a082a58c586db..6d843d87a2d45 100644 --- a/pandas/core/arrays/categorical.py +++ b/pandas/core/arrays/categorical.py @@ -449,7 +449,7 @@ def __init__( if isinstance(values.dtype, ArrowDtype) and issubclass( values.dtype.type, CategoricalDtypeType ): - arr = getattr(values, "array", values)._pa_array.combine_chunks() + arr = extract_array(values)._pa_array.combine_chunks() categories = arr.dictionary.to_pandas(types_mapper=ArrowDtype) codes = arr.indices.to_numpy() dtype = CategoricalDtype(categories, values.dtype.pyarrow_dtype.ordered)