Search code examples
pythonpandastimestampdatetime-conversion

pandas convert from datetime to integer timestamp


Considering a pandas dataframe in python having a column named time of type integer, I can convert it to a datetime format with the following instruction.

df['time'] = pandas.to_datetime(df['time'], unit='s')

so now the column has entries like: 2019-01-15 13:25:43.

What is the command to revert the string to an integer timestamp value (representing the number of seconds elapsed from 1970-01-01 00:00:00)?

I checked pandas.Timestamp but could not find a conversion utility and I was not able to use pandas.to_timedelta for this.

Is there any utility for this conversion?


Solution

  • You can typecast to int using astype(int) and divide it by 10**9 to get the number of seconds to the unix epoch start.

    import pandas as pd
    df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})
    df_unix_sec = pd.to_datetime(df['time']).astype(int)/ 10**9
    print(df_unix_sec)