Skip to content

Commit 23d156e

Browse files
committed
BUG: Block.iget not wrapping timedelta64/datetime64 (pandas-dev#31666)
1 parent 881fc60 commit 23d156e

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

pandas/core/internals/blocks.py

+10
Original file line numberDiff line numberDiff line change
@@ -2158,6 +2158,16 @@ def iget(self, key):
21582158
result = Timedelta(result)
21592159
return result
21602160

2161+
def iget(self, key):
2162+
# GH#31649 we need to wrap scalars in Timestamp/Timedelta
2163+
# TODO: this can be removed if we ever have 2D EA
2164+
result = super().iget(key)
2165+
if isinstance(result, np.datetime64):
2166+
result = Timestamp(result)
2167+
elif isinstance(result, np.timedelta64):
2168+
result = Timedelta(result)
2169+
return result
2170+
21612171

21622172
class DatetimeBlock(DatetimeLikeBlockMixin, Block):
21632173
__slots__ = ()

pandas/tests/frame/indexing/test_indexing.py

-7
Original file line numberDiff line numberDiff line change
@@ -2270,13 +2270,6 @@ def test_set_reset(self):
22702270
df = result.set_index("foo")
22712271
tm.assert_index_equal(df.index, idx)
22722272

2273-
def test_transpose(self, uint64_frame):
2274-
2275-
result = uint64_frame.T
2276-
expected = DataFrame(uint64_frame.values.T)
2277-
expected.index = ["A", "B"]
2278-
tm.assert_frame_equal(result, expected)
2279-
22802273

22812274
def test_object_casting_indexing_wraps_datetimelike():
22822275
# GH#31649, check the indexing methods all the way down the stack

pandas/tests/frame/methods/test_transpose.py

+7
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,10 @@ def test_transpose_object_to_tzaware_mixed_tz(self):
4141
assert (df2.dtypes == object).all()
4242
res2 = df2.T
4343
assert (res2.dtypes == [dti.dtype, dti2.dtype]).all()
44+
45+
def test_transpose_uint64(self, uint64_frame):
46+
47+
result = uint64_frame.T
48+
expected = DataFrame(uint64_frame.values.T)
49+
expected.index = ["A", "B"]
50+
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)