Search code examples
pandasdatetimetimestamptimedelta

Converting pandas._libs.tslibs.timestamps.Timestamp to seconds since midnight?


I have a pandas._libs.tslibs.timestamps.Timestamp object, e.g., 2016-01-01 07:00:04.85+00:00 and I want to create an int object that stores the number of seconds since the previous midnight.

In the above example, it would return 7 * 3600 + 0 * 60 + 4.85 = 25204.85 Is there a quick way to do this in pandas?


Solution

  • You can use normalize() to subtract the date part:

    # ts = pd.to_datetime('2016-01-01 07:00:04.85+00:00')
    >>> (ts - ts.normalize()).total_seconds()
    25204.85
    

    It also works with DataFrame through dt accessor:

    # df = pd.DataFrame({'date': [ts]})
    >>> (df['date'] - df['date'].dt.normalize()).dt.total_seconds()
    0    25204.85
    Name: date, dtype: float64