Search code examples
pythonpandasdata-analysisdata-sciencedata-cleaning

Pandas: How can I add two timestamp values?


I am trying to add more than two timestamp values and I expect to see output in minutes/seconds. How can I add two timestamps? I basically want to do: '1995-07-01 00:00:01' + '1995-07-01 00:05:06' and see if total time>=60minutes. I tried this code: df['timestamp'][0]+df['timestamp'][1]. I referred this post but my timestamps are coming from dataframe. Head of my dataframe column looks like this:

0   1995-07-01 00:00:01
1   1995-07-01 00:00:06
2   1995-07-01 00:00:09
3   1995-07-01 00:00:09
4   1995-07-01 00:00:09
Name: timestamp, dtype: datetime64[ns]

I am getting this error: TypeError: unsupported operand type(s) for +: 'Timestamp' and 'Timestamp'


Solution

  • #Adding two timestamps is not supported and not logical
    #Probably, you really want to add the time rather than the timestamp itself
    #This is how to extract the time from the timestamp then summing it up
    
    import datetime
    import time
    
    t = ['1995-07-01 00:00:01','1995-07-01 00:00:06','1995-07-01 00:00:09','1995-07-01 00:00:09','1995-07-01 00:00:09']
    tSum = datetime.timedelta()
    df = pd.DataFrame(t, columns=['timestamp'])
    for i in range(len(df)):
        df['timestamp'][i] = datetime.datetime.strptime(df['timestamp'][i], "%Y-%m-%d %H:%M:%S").time()
        dt=df['timestamp'][i]
        (hr, mi, sec) = (dt.hour, dt.minute, dt.second)
        sum = datetime.timedelta(hours=int(hr), minutes=int(mi),seconds=int(sec))
        tSum += sum
    if tSum.seconds >= 60*60:
        print("more than 1 hour")
    else:
        print("less than 1 hour")