pandas datetime to unix timestamp seconds
I think you misunderstood what the argument is for. The purpose of origin='unix'
is to convert an integer timestamp to datetime
, not the other way.
pd.to_datetime(1.547559e+09, unit='s', origin='unix')
# Timestamp('2019-01-15 13:30:00')
Here are some options:
Option 1: integer division
Conversely, you can get the timestamp by converting to integer (to get nanoseconds) and divide by 109.
pd.to_datetime(['2019-01-15 13:30:00']).astype(int) / 10**9
# Float64Index([1547559000.0], dtype='float64')
Pros:
- super fast
Cons:
- makes assumptions about how pandas internally stores dates
Option 2: recommended by pandas
Pandas docs recommend using the following method:
# create test data
dates = pd.to_datetime(['2019-01-15 13:30:00'])
# calculate unix datetime
(dates - pd.Timestamp("1970-01-01")) // pd.Timedelta('1s')
[out]:
Int64Index([1547559000], dtype='int64')
Pros:
- "idiomatic", recommended by the library
Cons:
- unweildy
- not as performant as integer division
Option 3: pd.Timestamp
If you have a single date string, you can use pd.Timestamp
as shown in the other answer:
pd.Timestamp('2019-01-15 13:30:00').timestamp()
# 1547559000.0
If you have to cooerce multiple datetimes (where pd.to_datetime
is your only option), you can initialize and map:
pd.to_datetime(['2019-01-15 13:30:00']).map(pd.Timestamp.timestamp)
# Float64Index([1547559000.0], dtype='float64')
Pros:
- best method for a single datetime string
- easy to remember
Cons:
- not as performant as integer division
Pandas: convert date 'object' to int
The reason why test_df['Date'].astype(int)
gives you an error is that your dates still contain hyphens "-". First suppress them by doing test_df['Date'].str.replace("-","")
, then you can apply your first method to the resulting series. So the whole solution would be :
test_df['Date'].str.replace("-","").astype(int)
Note that this won't work if your "Date" column is not a string object, typically when Pandas has already parsed your series as TimeStamp. In this case you can use :
test_df['Date'].dt.strftime("%Y%m%d").astype(int)
Convert a timestamp to int using astype(int)
For ns
like native format for numpy/pandas
use:
d = pd.to_datetime(1613260800000000000)
native = int(d.timestamp() * 10**9)
print (native)
1613260800000000000
print (pd.to_datetime(native))
2021-02-14 00:00:00
If need convert column:
time = pd.to_datetime(1613260800000000000)
df = pd.DataFrame({'start_time':[time, time]})
print (df['start_time'].astype(np.int64))
0 1613260800000000000
1 1613260800000000000
Name: start_time, dtype: int64
Convert unix time to readable date in pandas dataframe
These appear to be seconds since epoch.
In [20]: df = DataFrame(data['values'])
In [21]: df.columns = ["date","price"]
In [22]: df
Out[22]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 358 entries, 0 to 357
Data columns (total 2 columns):
date 358 non-null values
price 358 non-null values
dtypes: float64(1), int64(1)
In [23]: df.head()
Out[23]:
date price
0 1349720105 12.08
1 1349806505 12.35
2 1349892905 12.15
3 1349979305 12.19
4 1350065705 12.15
In [25]: df['date'] = pd.to_datetime(df['date'],unit='s')
In [26]: df.head()
Out[26]:
date price
0 2012-10-08 18:15:05 12.08
1 2012-10-09 18:15:05 12.35
2 2012-10-10 18:15:05 12.15
3 2012-10-11 18:15:05 12.19
4 2012-10-12 18:15:05 12.15
In [27]: df.dtypes
Out[27]:
date datetime64[ns]
price float64
dtype: object
How to convert to Pandas datetime to date to integer in pandas?
Subtract date from column by Series.sub
and convert timedeltas to days by Series.dt.days
:
df['days'] = pd.to_datetime(df['date']).sub(pd.Timestamp('2010-01-01')).dt.days
print (df)
date days
0 2018-08-27 00:00:00.000 3160
1 2018-08-26 00:00:00.000 3159
2 2018-08-24 00:00:00.000 3157
3 2018-08-24 00:00:00.000 3157
4 2018-08-24 00:00:00.000 3157
5 2018-08-24 00:00:00.000 3157
6 2018-08-23 00:00:00.000 3156
7 2018-08-23 00:00:00.000 3156
8 2018-08-20 00:00:00.000 3153
9 2018-08-20 00:00:00.000 3153
Related Topics
Python: How to Check If Cell in CSV File Is Empty
How to Perform Union on Two Dataframes With Different Amounts of Columns in Spark
Spark Equivalent of If Then Else
How to Check List Containing Nan
Importing Local Module (Python Script) in Airflow Dag
Python How to Use Excelwriter to Write into an Existing Worksheet
How to Delete a Specific Line in a File
How to Delete Blank Lines from CSV File
How to Fix the 403:Insufficient Authentication Scopes Error from Google Analytics User Deletion API
I Received an Error Message That I Don't Quite Understand
Checking If a Button Has Been Pressed in Python
Add N Empty Rows in a Dataframe
How to Make Python Code to Execute Only Once
Python: How to Turn CSV Data in to Array
Counting the No. of Black to White Pixels in the Image Using Opencv