Convert from string column in pandas dataframe to time h:mm:ss

Viewed 44

I have a column in my dataframe that has values like this: 00:23:44 how can i convert it from string to time h:mm:ss ?

1 Answers

Use to_datetime and errors='coerce' for convert not datetimelike values to missing values with Series.dt.time, but later processing is problematic:

df['time'] = pd.to_datetime(df['col'], errors='coerce').dt.time

If need processing values later use to_timedelta:

df['time'] = pd.to_timedelta(df['col'], errors='coerce')

Sample:

df = pd.DataFrame({'col':['00:23:44','00:23:47','###']})

df['time'] = pd.to_datetime(df['col'], errors='coerce').dt.time
df['timedelta'] = pd.to_timedelta(df['col'], errors='coerce')
print (df)
        col      time       timedelta
0  00:23:44  00:23:44 0 days 00:23:44
1  00:23:47  00:23:47 0 days 00:23:47
2       ###       NaT             NaT
    
Related