Convertendo MM: string SS.ss em um timedelta

Nov 05 2020

Estou tentando converter MM: SS.ss em um timedelta. Até agora, tentei:

df=pd.to_timedelta(df) 

isso me deu TypeError: arg must be a string, timedelta, list, tuple, 1-d array, or Series.

df = pd.to_datetime(df, format = "%MM:%SS:%ss")

Exemplo dos dados: 1:24.3154

Respostas

2 Arty Nov 05 2020 at 09:56

Experimente online!

import pandas as pd
df = pd.DataFrame({    # Read-in input DataFrame any way you need
    'TimeCol0': ['1:24.3154', '2:36.789'],
    'TimeCol1': ['3:57.98',   '10:15.32'],
    'OtherCol': ['a', 'b'],
})
for col in ['TimeCol0', 'TimeCol1']:  # Put here all time columns to be converted
    df[col] = pd.to_datetime(df[col], format = '%M:%S.%f') - pd.to_datetime('1900-01-01')
print(df)

Resultado:

                TimeCol0               TimeCol1 OtherCol
0 0 days 00:01:24.315400 0 days 00:03:57.980000        a
1 0 days 00:02:36.789000 0 days 00:10:15.320000        b