Skip to content

Commit d2247d2

Browse files
committed
troubleshoot
1 parent 3fa0f6a commit d2247d2

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

pandas/core/groupby/ops.py

+9-12
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,7 @@ def _reconstruct_ea_result(
367367
"""
368368
Construct an ExtensionArray result from an ndarray result.
369369
"""
370+
dtype: BaseMaskedDtype | StringDtype
370371

371372
if isinstance(values.dtype, StringDtype):
372373
dtype = values.dtype
@@ -375,21 +376,17 @@ def _reconstruct_ea_result(
375376

376377
elif isinstance(values.dtype, BaseMaskedDtype):
377378
new_dtype = self._get_result_dtype(values.dtype.numpy_dtype)
378-
# Troubleshooting 32bit build
379-
assert new_dtype == res_values.dtype, (new_dtype, res_values.dtype)
379+
dtype = BaseMaskedDtype.from_numpy_dtype(new_dtype)
380380
# error: Incompatible types in assignment (expression has type
381-
# "BaseMaskedDtype", variable has type "StringDtype")
382-
dtype = BaseMaskedDtype.from_numpy_dtype( # type: ignore[assignment]
383-
new_dtype
384-
)
385-
cls = dtype.construct_array_type()
381+
# "Type[BaseMaskedArray]", variable has type "Type[BaseStringArray]")
382+
cls = dtype.construct_array_type() # type: ignore[assignment]
386383
return cls._from_sequence(res_values, dtype=dtype)
387384

388-
elif needs_i8_conversion(values.dtype):
389-
assert res_values.dtype.kind != "f" # just to be on the safe side
390-
i8values = res_values.view("i8")
391-
# error: Too many arguments for "ExtensionArray"
392-
return type(values)(i8values, dtype=values.dtype) # type: ignore[call-arg]
385+
elif isinstance(values, (DatetimeArray, TimedeltaArray, PeriodArray)):
386+
# In to_cython_values we took a view as M8[ns]
387+
assert res_values.dtype == "M8[ns]"
388+
res_values = res_values.view(values._ndarray.dtype)
389+
return values._from_backing_data(res_values)
393390

394391
raise NotImplementedError
395392

0 commit comments

Comments
 (0)