I just encountered this issue and found that @charlie-haley’s answer isn’t quite general enough for my use case. In particular np.datetime64
doesn’t seem to match datetime64[ns, UTC]
.
df['date_col'] = pd.to_datetime(df['date_str'], utc=True)
print(df.date_str.dtype) # datetime64[ns, UTC]
You could also extend the list of dtypes to include other types, but that doesn’t seem like a good solution for future compatability, so I ended up using the is_datetime64_any_dtype
function from the pandas api instead.
In:
from pandas.api.types import is_datetime64_any_dtype as is_datetime
df[[column for column in df.columns if is_datetime(df[column])]]
Out:
date_col
0 2017-02-01 00:00:00+00:00
1 2017-03-01 00:00:00+00:00
2 2017-04-01 00:00:00+00:00
3 2017-05-01 00:00:00+00:00