Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between two timestamps in Pandas

I have the following two time column,"Time1" and "Time2".I have to calculate the "Difference" column,which is (Time2-Time1) in Pandas:

Time1         Time2                 Difference
8:59:45       9:27:30               -1 days +23:27:45
9:52:29       10:08:54              -1 days +23:16:26
8:07:15       8:07:53               00:00:38

When Time1 and Time2 are in different hours,I am getting result as"-1 days +" .My desired output for First two values are given below:

Time1         Time2                 Difference
8:59:45       9:27:30               00:27:45
9:52:29       10:08:54              00:16:26

How can I get this output in Pandas?

Both time values are in 'datetime64[ns]' dtype.

like image 230
Nithin Das Avatar asked Oct 30 '15 10:10

Nithin Das


People also ask

How do you tell the difference between two timestamps in Pandas?

To calculate time difference between two Python Pandas columns in hours and minutes, we can subtract the datetime objects directly. We create a Panda DataFrame with 3 columns. Then we set the values of the to and fr columns to Pandas timestamps.

How do you find the difference in time between two timestamps?

Discussion: If you'd like to calculate the difference between the timestamps in seconds, multiply the decimal difference in days by the number of seconds in a day, which equals 24 * 60 * 60 = 86400 , or the product of the number of hours in a day, the number of minutes in an hour, and the number of seconds in a minute.

How do I find the difference between two dates in Python?

Use the strptime(date_str, format) function to convert a date string into a datetime object as per the corresponding format . To get the difference between two dates, subtract date2 from date1.

How do you subtract dates in Pandas?

When the function receives the date string it will first use the Pandas to_datetime() function to convert it to a Python datetime and it will then use the timedelta() function to subtract the number of days defined in the days variable.


1 Answers

The issue is not that time1 and time2 are in different hours, it's that time2 is before time1 so time2-time1 is negative, and this is how negative timedeltas are stored. If you just want the difference in minutes as a negative number, you could extract the minutes before calculating the difference:

(df.Time1.dt.minute- df.Time2.dt.minute)
like image 73
maxymoo Avatar answered Sep 30 '22 17:09

maxymoo