Given the following data frame and necessary wrangling:
import pandas as pd
df=pd.DataFrame({'A':['a','b','c'],
'dates':['2015-08-31 00:00:00','2015-08-24 00:00:00','2015-08-25 00:00:00']})
df.dates=df.dates.astype(str)
df['dates'] = pd.to_datetime(df.dates.str.split(',\s*').str[0])
set(df['dates'])
I end up with:
{Timestamp('2015-08-24 00:00:00'),
Timestamp('2015-08-25 00:00:00'),
Timestamp('2015-08-31 00:00:00')}
I need to convert the time stamps back to datetime (really, just date) format.
I've tried this based on the answer to this post:
df['dates'].to_pydatetime()
But that returns:
AttributeError: 'Series' object has no attribute 'to_pydatetime'
In my real data, the data type is: <M8[ns]
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)}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With