Use to_datetime
with convert strings to datetimes by dateparser.parse
:
import dateparser
df['PDT/PST'] = pd.to_datetime(df['PDT/PST'].apply(dateparser.parse), utc=True)
print (df)
PDT/PST
0 2021-10-29 07:18:38+00:00
1 2021-10-29 08:08:19+00:00
2 2021-11-09 03:43:58+00:00
3 2021-11-09 03:56:01+00:00
Last add Series.dt.tz_localize
with None
:
df['PDT/PST'] = (pd.to_datetime(df['PDT/PST'].apply(dateparser.parse), utc=True)
.dt.tz_localize(None))
print (df)
PDT/PST
0 2021-10-29 07:18:38
1 2021-10-29 08:08:19
2 2021-11-09 03:43:58
3 2021-11-09 03:56:01
Solution with replace PST
and PDT
to -7
or -8
is:
df['PDT/PST'] = (pd.to_datetime(df['PDT/PST']
.replace({'PDT':'-07:00','PST':'-08:00'}, regex=True), utc=True)
.dt.tz_localize(None))
print (df)
PDT/PST
0 2021-10-29 07:18:38
1 2021-10-29 08:08:19
2 2021-11-09 03:43:58
3 2021-11-09 03:56:01