Skip to content

Commit 3207057

Browse files
committed
Updated EA catch method in _maybe_align_series_as_frame
1 parent a230b57 commit 3207057

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

pandas/core/frame.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,6 @@
125125
notna,
126126
)
127127

128-
from pandas.arrays import (
129-
FloatingArray,
130-
IntegerArray,
131-
)
132128
from pandas.core import (
133129
algorithms,
134130
common as com,
@@ -8472,13 +8468,23 @@ def _maybe_align_series_as_frame(self, series: Series, axis: AxisInt):
84728468
blockwise.
84738469
"""
84748470
rvalues = series._values
8475-
if not isinstance(rvalues, np.ndarray):
8476-
if rvalues.dtype in ("datetime64[ns]", "timedelta64[ns]") or isinstance(
8477-
rvalues, (IntegerArray, FloatingArray)
8478-
):
8479-
rvalues = np.asarray(rvalues)
8471+
if isinstance(rvalues, PeriodArray):
8472+
return series
8473+
if not isinstance(rvalues, (np.ndarray,)) and rvalues.dtype not in (
8474+
"datetime64[ns]",
8475+
"timedelta64[ns]",
8476+
):
8477+
if axis == 0:
8478+
df = DataFrame(dict.fromkeys(range(self.shape[1]), rvalues))
84808479
else:
8481-
return series
8480+
nrows = self.shape[0]
8481+
df = DataFrame(
8482+
{i: rvalues[[i]].repeat(nrows) for i in range(self.shape[1])},
8483+
dtype=rvalues.dtype,
8484+
)
8485+
df.index = self.index
8486+
df.columns = self.columns
8487+
return df
84828488

84838489
if axis == 0:
84848490
rvalues = rvalues.reshape(-1, 1)

0 commit comments

Comments
 (0)