Home > Mobile >  Converting to UNIX time
Converting to UNIX time

Time:11-09

I have a .csv file that contains:

created_at actual_delivery_time
2015-02-06 22:24:17 2015-02-06 23:27:16
2015-02-10 21:49:25 2015-02-10 22:56:29

I want to convert these columns from datetime to UNIX timestamp.

For created_at, I was able to convert:

ndf["created_unix"] = pd.to_datetime(ndf["created_at"])
ndf["created_unix"] = (ndf["created_unix"] - pd.Timestamp("1970-01-01")) // pd.Timedelta("1s")

Which outputted:

created_unix
1423261457
1423604965

This is exactly what I'm looking for, however following the same steps for column actual_delivery_time produces a different result:

ndf["actual_unix"] = pd.to_datetime(ndf["actual_delivery_time"])
ndf["actual_unix"] = (ndf["actual_unix"] - pd.Timestamp("1970-01-01")) // pd.Timedelta("1s")

This outputs:

actual_unix
1.423265e 09
1.423609e 09

It is readable by the Epoch converter, but it isn't the correct timestamp. Is there something I'm doing wrong?

I'm not sure why its producing a different result.

CodePudding user response:

I'm not sure why its producing a different result.

Consult ndf.dtypes.

You are complaining that one column is of type int, while the other is a float.

Likely one or more actual_delivery_time values were blank, and pandas represented that with a floating-point NaN.

  • Related