Один из возможных вариантов - извлечь последовательности цифр в
временный фрейм данных:
tm = df['Time taken'].str.extract('(?P<mins>\d+)\D+(?P<secs>\d+)?')\
.fillna(0).astype('int')
Обратите внимание, что имена столбцов взяты из имен групп захвата.
Fillna требуется для изменения значений NaN
пропущенных секунд на нули.
И, наконец, astype необходим для переопределения типа по умолчанию object
(извлеченные последовательности являются строками).
Затем вы можете установить столбец time
с помощью числовой формулы:
df['time'] = tm.mins * 60 + tm.secs
И, наконец, вы должны удалить временный DataFrame, используя del tm
.
Преимущество моего решения в том, что столбец Time taken
не изменяется.