Skip to content

PERF: DataFrame.values for pyarrow-backed numeric types #52348

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions pandas/core/internals/managers.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@

import pandas.core.algorithms as algos
from pandas.core.arrays._mixins import NDArrayBackedExtensionArray
from pandas.core.arrays.arrow import ArrowDtype
from pandas.core.arrays.sparse import SparseDtype
import pandas.core.common as com
from pandas.core.construction import (
Expand Down Expand Up @@ -1769,6 +1770,13 @@ def _interleave(
if isinstance(dtype, SparseDtype):
dtype = dtype.subtype
dtype = cast(np.dtype, dtype)
elif (
isinstance(dtype, ArrowDtype)
and dtype.numpy_dtype is not None
and dtype.numpy_dtype.kind in "fciub"
and all(blk.dtype == dtype and not blk.values._hasna for blk in self.blocks)
):
dtype = dtype.numpy_dtype
elif isinstance(dtype, ExtensionDtype):
dtype = np.dtype("object")
elif is_dtype_equal(dtype, str):
Expand Down