Skip to content

Commit 6b6e4d7

Browse files
committed
BUG: chokes on pd.DatetimeTZDtype if there are no rows.
This is a follow up to pandas-dev#41875
1 parent 42082a8 commit 6b6e4d7

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

doc/source/whatsnew/v3.0.0.rst

+1
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,7 @@ Reshaping
594594
^^^^^^^^^
595595
- Bug in :meth:`DataFrame.join` inconsistently setting result index name (:issue:`55815`)
596596
- Bug in :meth:`DataFrame.unstack` producing incorrect results when ``sort=False`` (:issue:`54987`, :issue:`55516`)
597+
- Bug in :meth:`DataFrame.unstack` producing incorrect results when manipulating empty DataFrame using dtype extensions (:issue:`59123`)
597598

598599
Sparse
599600
^^^^^^

pandas/core/reshape/reshape.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,12 @@ def get_new_values(self, values, fill_value=None):
291291
# if our mask is all True, then we can use our existing dtype
292292
if mask_all:
293293
dtype = values.dtype
294-
new_values = np.empty(result_shape, dtype=dtype)
294+
if isinstance(dtype, ExtensionDtype):
295+
# GH#41875
296+
cls = dtype.construct_array_type()
297+
new_values = cls._empty(result_shape, dtype=dtype)
298+
else:
299+
new_values = np.empty(result_shape, dtype=dtype)
295300
else:
296301
if isinstance(dtype, ExtensionDtype):
297302
# GH#41875

0 commit comments

Comments
 (0)