How do I convert timestamp to datetime.date in pandas dataframe?
I need to merge 2 pandas dataframes together on dates, but they currently have different date types. 1 is timestamp (imported from excel) and the other is datetime.date
.
Any advice?
I've tried pd.to_datetime().date
but this only works on a single item(e.g. df.ix[0,0]
), it won't let me apply to the entire series (e.g. df['mydates']
) or the dataframe.
I got some help from a colleague.
This appears to solve the problem posted above
pd.to_datetime(df['mydates']).apply(lambda x: x.date())
Much simpler than above:
df['mydates'].dt.date
For me this works:
from datetime import datetime
df[ts] = [datetime.fromtimestamp(x) for x in df[ts]]
Another question was marked as dupe pointing to this, but it didn't include this answer, which seems the most straightforward (perhaps this method did not yet exist when this question was posted/answered):
The pandas doc shows a pandas.Timestamp.to_pydatetime
method to "Convert a Timestamp object to a native Python datetime object".
If you need the datetime.date
objects... then get them through with the .date
attribute of the Timestamp
pd.to_datetime(df['mydates']).date