Вы можете попробовать удалить часть [...]
, а затем передать ее на to_datetime
:
pd.to_datetime(df.timestamp.str.extract('(.*)\[.*\]')[0])
возвращается:
0 2019-02-24 17:00:00-06:00
1 2019-02-24 17:05:00-06:00
2 2019-02-24 17:10:00-06:00
3 2019-02-24 17:15:00-06:00
4 2019-02-24 17:20:00-06:00
Name: 0, dtype: datetime64[ns, pytz.FixedOffset(-360)]
Вы можете сохранить метку часового пояса, добавив еще одну группу захвата в шаблон регулярного выражения:
pattern = '(?P<time>.*)\[(?P<zone>.*)\]'
new_df = df.timestamp.str.extract(pattern)
Тогда new_df
- это:
time zone
0 2019-02-24T17:00-06:00 US/Central
1 2019-02-24T17:05-06:00 US/Central
2 2019-02-24T17:10-06:00 US/Central
3 2019-02-24T17:15-06:00 US/Central
4 2019-02-24T17:20-06:00 US/Central
который вы можете конвертировать time
на pd.to_datetime
.