lpnorm
lpnorm

Reputation: 471

Timedelta time difference expressed as float variable

I have data in a pandas dataframe that is marked by timestamps as datetime objects. I would like to make a graph that takes the time as something fluid. My idea was to substract the first timestamp from the others (here exemplary for the second entry)

xhertz_df.loc[1]['Dates']-xhertz_df.loc[0]['Dates']

to get the time passed since the first measurement. Which gives 350 days 08:27:51 as a timedelta object. So far so good.

This might be a duplicate but I have not found the solution here so far. Is there a way to quickly transform this object to a number of e.g. minutes or seconds or hours. I know I could extract the individual days, hours and minutes and make a tedious calculation to get it. But is there an integrated way to just turn this object into what I want?

Something like

timedelta.tominutes

that gives it back as a float of minutes, would be great.

Upvotes: 2

Views: 941

Answers (3)

Serge Ballesta
Serge Ballesta

Reputation: 148880

In Pandas, Timestamp and Timedelta columns are internally handled as numpy datetime64[ns], that is an integer number of nanoseconds.

So it is trivial to convert a Timedelta column to a number of minutes:

(xhertz_df.loc[1]['Dates']-xhertz_df.loc[0]['Dates']).astype('int64')/60000000000.

Upvotes: 2

fsl
fsl

Reputation: 3280

If all you want is a float representation, maybe as simple as:

float_index = pd.Index(xhertz_df.loc['Dates'].values.astype(float))                                                           

Upvotes: 2

Lumber Jack
Lumber Jack

Reputation: 622

Here is a way to do so with ‘timestamp‘:

Two examples for converting and one for the diff

import datetime as dt
import time
# current date and time
now = dt.datetime.now()

timestamp1 = dt.datetime.timestamp(now)
print("timestamp1 =", timestamp1)
time.sleep(4)
now = dt.datetime.now()
timestamp2 = dt.datetime.timestamp(now)
print("timestamp2 =", timestamp2)
print(timestamp2 - timestamp1)

enter image description here

Upvotes: 1

Related Questions