Отметка времени с колонкой часовых поясов в Пандах - PullRequest
1 голос
/ 11 июля 2019

Я читаю данные из источника Java. Я получаю следующий фрейм данных:

df.head()

    open        timestamp
0   1.13550     2019-02-24T17:00-06:00[US/Central]
1   1.13570     2019-02-24T17:05-06:00[US/Central]
2   1.13560     2019-02-24T17:10-06:00[US/Central]
3   1.13565     2019-02-24T17:15-06:00[US/Central]
4   1.13570     2019-02-24T17:20-06:00[US/Central]

df.dtypes

open        float64
timestamp   object
dtype: object

Как я могу преобразовать метку времени столбца в Datetime с часовым поясом в Pandas? Есть ли такая вещь в Пандах?

Я нашел этот пост, но он, кажется, не анализирует часовой пояс, просто добавьте часовой пояс позже. Как читать дату и время с часовым поясом в пандах

Любая помощь / подсказка приветствуется

Ответы [ 2 ]

1 голос
/ 11 июля 2019

В одну сторону

pd.to_datetime(df.timestamp.str.split('[').str[0])
Out[137]: 
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: timestamp, dtype: datetime64[ns, pytz.FixedOffset(-360)]
1 голос
/ 11 июля 2019

Вы можете попробовать удалить часть [...], а затем передать ее на 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...