Search code examples
pandasdatetimetype-conversion

pandas - change time object to a float?


I have a field for call length in my raw data which is listed as an object, such as: 00:10:30 meaning 10 minutes and 30 seconds. How can I convert this to a number like 10.50?

I keep getting errors. If convert the fields with pd.datetime then I can't do an .astype('float'). In Excel, I just multiple the time stamp by 1440 and it outputs the number value I want to work with. (Timestamp * 24 * 60)


Solution

  • You can use time deltas to do this more directly:

    In [11]: s = pd.Series(["00:10:30"])
    
    In [12]: s = pd.to_timedelta(s)
    
    In [13]: s
    Out[13]:
    0   00:10:30
    dtype: timedelta64[ns]
    
    In [14]: s / pd.offsets.Minute(1)
    Out[14]:
    0    10.5
    dtype: float64