pythonpandasdataframetimedelta

How to convert timedelta to hours


I have a timedelta Dataframe

JC time
1 3days 21:02:05
2 1days 23:50:07
3 6days 19:28:36

but i want

1 93:02:05
2 47:50:07
3 163:28:36

How can I convert it?


Solution

  • You could do as follows to convert a timedelta to the number of hours, minutes and seconds in the format you want:

    def convert_to_hours(delta):
        total_seconds = delta.total_seconds()
        hours = str(int(total_seconds // 3600)).zfill(2)
        minutes = str(int((total_seconds % 3600) // 60)).zfill(2)
        seconds = str(int(total_seconds % 60)).zfill(2)
        return f"{hours}:{minutes}:{seconds}"
    
    delta = timedelta(days=3, hours=21, minutes=2, seconds=5)
    # 3 days, 21:02:05
    
    convert_to_hours(delta)
    # 93:02:05
    

    And to convert your dataframe, you can do something like this:

    df["time"] = df["time"].apply(convert_to_hours)