Skip to content

Commit b4f28d5

Browse files
committed
BUG: Fix dt64[non_nano] + offset rounding
1 parent b5acd0b commit b4f28d5

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

pandas/core/arrays/datetimes.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -814,13 +814,7 @@ def _add_offset(self, offset: BaseOffset) -> Self:
814814
PerformanceWarning,
815815
stacklevel=find_stack_level(),
816816
)
817-
res_values = np.array(
818-
[Timestamp(x) + offset for x in self],
819-
dtype="object",
820-
)
821-
result = type(self)._from_sequence(res_values)
822-
823-
else:
817+
res_values = self.astype("O") + offset
824818
units = [
825819
"ns",
826820
"us",
@@ -840,8 +834,12 @@ def _add_offset(self, offset: BaseOffset) -> Self:
840834
idx_self = units.index(self.unit)
841835
idx_offset = units.index(offset_unit)
842836
res_unit = units[min(idx_self, idx_offset)]
837+
dtype = tz_to_dtype(self.tz, unit=res_unit)
838+
result = type(self)._from_sequence(res_values, dtype=dtype)
839+
840+
else:
843841
result = type(self)._simple_new(res_values, dtype=res_values.dtype)
844-
result = result.as_unit(res_unit)
842+
result = result.as_unit(self.unit)
845843

846844
if offset.normalize:
847845
result = result.normalize()

0 commit comments

Comments
 (0)