Skip to content

Commit b13f24f

Browse files
victorjorisvandenbossche
victor
authored andcommitted
Checking float with units in Timedelta class.
1 parent 6e7ef94 commit b13f24f

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

pandas/_libs/tslibs/timedeltas.pyx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -969,7 +969,7 @@ class Timedelta(_Timedelta):
969969
----------
970970
value : Timedelta, timedelta, np.timedelta64, string, or integer
971971
unit : string, {'ns', 'us', 'ms', 's', 'm', 'h', 'D'}, optional
972-
Denote the unit of the input, if input is an integer. Default 'ns'.
972+
Denote the unit of the input, if input is an integer/float. Default 'ns'.
973973
days, seconds, microseconds,
974974
milliseconds, minutes, hours, weeks : numeric, optional
975975
Values for construction in compat with datetime.timedelta.
@@ -1018,8 +1018,15 @@ class Timedelta(_Timedelta):
10181018
elif len(value) > 0 and value[0] == 'P':
10191019
value = parse_iso_format_string(value)
10201020
else:
1021-
value = parse_timedelta_string(value, unit)
1022-
value = np.timedelta64(value)
1021+
try:
1022+
value = float(value)
1023+
except ValueError:
1024+
value = parse_timedelta_string(value)
1025+
value = np.timedelta64(value)
1026+
else:
1027+
if unit is None:
1028+
raise ValueError("Cannot convert float string without unit.")
1029+
value = convert_to_timedelta64(value, unit)
10231030
elif PyDelta_Check(value):
10241031
value = convert_to_timedelta64(value, 'ns')
10251032
elif is_timedelta64_object(value):

0 commit comments

Comments
 (0)