Я собрал набор данных о времени выполнения финиша, который включает бегунов, заканчивающих за час и выше часа. Бегуны в течение часа кодируются как M: S, например 48:12 для бегуна, который финишировал за 48 минут и 12 секунд. Бегуны выше часа кодируются как H: M: S, например 1: 12: 45.
Есть ли способ передать два формата в datetime и кодировать их все как H: M: S?
Я пытался:
df['Time'] = pd.to_datetime(df['Time'],format="%H:%M:%S")
это (правильно) выдает ошибку для бегунов в течение часа.
for obs in range(1,len(df)):
text = df.iloc[obs].loc['Time']
for fmt in ('%M:%S', '%H:%M:%S'):
try:
datetime.strptime(text, fmt)
except ValueError:
pass
raise ValueError('no valid date format found')
Это дает оценщику ошибку, что не был найден правильный формат.
Я хочу, чтобы решение было чем-то, что я мог бы использовать для разных наборов данных, поэтому просто найти первого участника в течение часа и использовать другой формат с тех пор не получится.