Я не уверен, подходит ли вам это, но, по моему мнению, преобразование неформатных значений в NaT
будет более удобным:
result = pd.to_datetime(lateness, format='%H:%M:%S', errors='coerce').dt.time
Результат:
0 00:01:48
1 00:07:38
2 00:04:44
3 00:12:18
4 NaT
5 NaT
6 00:01:36
7 NaT
8 NaT
9 NaT
Если вы все еще хотите преобразовать NaT
в 00:00:00
, используя fillna
:
result.fillna(pd.to_datetime('00:00:00', format='%H:%M:%S').time())
Результат:
0 00:01:48
1 00:07:38
2 00:04:44
3 00:12:18
4 00:00:00
5 00:00:00
6 00:01:36
7 00:00:00
8 00:00:00
9 00:00:00