Skip to content

Commit cbc8c73

Browse files
committed
Fix behavior of to_offset with leading zeroes
Currently, `pandas.tseries.frequencies.to_offset` erroneously returns a zero time offset when the first part of its argument has a numerical value of zero, even if later parts have nonzero values. For instance, In [123]: pandas.tseries.frequencies.to_offset('00H 00T 01S') Out[123]: <0 * Days> In this patch the sign check is applied before conversion to `int` in order to support offsets like `'-00H 00T 01S'`.
1 parent c6ad1cd commit cbc8c73

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

pandas/tseries/frequencies.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -283,11 +283,11 @@ def to_offset(freqstr):
283283
try:
284284
for stride, name, _ in opattern.findall(freqstr):
285285
offset = get_offset(name)
286+
if stride_sign is None:
287+
stride_sign = -1 if stride.startswith('-') else 1
286288
if not stride:
287289
stride = 1
288290
stride = int(stride)
289-
if stride_sign is None:
290-
stride_sign = np.sign(stride)
291291
offset = offset * int(np.fabs(stride) * stride_sign)
292292
if delta is None:
293293
delta = offset

0 commit comments

Comments
 (0)