Я бы избавил себя от лишних хлопот и поработал с удобными опциями форматирования, уже предоставленными pandas.to_datetime
.Ваш столбец явно является строкой из-за ведущих нулей.Оттуда очень легко получить время в любой единице, которую вы хотите, в этом случае 'ms'
Формат вашей строки '%H%M%S.%f'
.Мы преобразуем это в datetime
объект, который дает вам начальную дату 1900-01-01
.Мы просто вычитаем это, а затем преобразуем единицы в мс с помощью np.timedelta64
import pandas as pd
import numpy as np
df
number
0 042826.00
1 042826.25
2 042826.50
3 042826.75
4 042827.00
5 042827.25
6 042827.50
7 042827.75
(pd.to_datetime(df.number, format='%H%M%S.%f')
-pd.to_datetime('1900-01-01'))/np.timedelta64(1, 'ms')
#0 16106000.0
#1 16106250.0
#2 16106500.0
#3 16106750.0
#4 16107000.0
#5 16107250.0
#6 16107500.0
#7 16107750.0
#Name: number, dtype: float64
Дата 1900-01-01
используется в качестве значения по умолчанию, наиболее вероятно из-за поведения по умолчанию time.strptime
Значения по умолчанию, используемые для заполнения любых пропущенных данных, когда более точные значения не могут быть выведены, (1900, 1, 1, 0, 0, 0, 0, 1, -1).И строка, и формат должны быть строками.