Pandas Convert Timestamp Column to Datetime
If you are keen on extracting only the date from a given Timestamp
object, you can get the raw datetime.date
objects by calling the unbound Timestamp.date
method as shown:
import pandas as pd
from pandas import Timestamp, Series, date_range
start = Timestamp('2016-01-01')
stop = Timestamp('2016-01-02')
s = Series(date_range(start, stop, freq = 'H'))
print s[0]
2016-01-01 00:00:00
print s.map(Timestamp.date)[0]
2016-01-01
dtype: object
I have a similar issue where I need to convert timestamp to datetime in numpy though, but I believe it can be apply in Pandas as well. I think using function under Pandas.Timestamp would be better to convert timestamp as below.
==============================
np1=pd.DataFrame.to_numpy(df2)
print(np1)
[[Timestamp('2019-01-31 00:00:00') 'UCHITEC' 2000 2.56 5129.54]
[Timestamp('2019-01-16 00:00:00') 'UCHITEC' 1000 2.61 2618.79]]
np2= np.asarray(np1)
Timestamp('2019-01-16 00:00:00')
np3 = pd.Timestamp.to_datetime64(np2[0][0])
np4 = pd.Timestamp.to_pydatetime(np2[1][0])
print(np3)
print(np4)
2019-01-31T00:00:00.000000000
2019-01-16 00:00:00
You can convert directly using apply:
df.dates = df.dates.apply(lambda x: x.date())
This makes an in-place conversion of the previous 'dates' (as a timestamp) to the truncated 'datetime' only portion
You can use dt.date
to return a datetime.date
object:
In [3]:
set(df['dates'].dt.date)
Out[3]:
{datetime.date(2015, 8, 24),
datetime.date(2015, 8, 25),
datetime.date(2015, 8, 31)}