Fractional float to_datetime

Viewed 52

Why does the following return incorrect seconds and fractional seconds?:

Input:

import pandas as pd
pd.to_datetime(float(171638.6), format='%H%M%S%f')

Output:

Timestamp('1900-01-01 17:16:03.800000')

I expected it to return:

Timestamp('1900-01-01 17:16:38.600000')

I am not sure if this is related: https://github.com/pandas-dev/pandas/pull/13847

1 Answers

This seems to work in all cases (with a fraction or without):

val1 = 171638.6
pd.to_datetime(f"{val1:f}", format='%H%M%S.%f')
val2 = 171638
pd.to_datetime(f"{val2:f}", format='%H%M%S.%f')

so does

pd.to_datetime(str(float(val1)), format='%H%M%S.%f')
pd.to_datetime(str(float(val2)), format='%H%M%S.%f')
Related