UT C в PST с несколькими столбцами, используя Python - PullRequest
0 голосов
/ 24 апреля 2020

Фон

У меня есть фрейм данных, df: я хочу преобразовать метки времени даты из UT C в PST в обоих столбцах.

  Connected                    Ended

  3/3/2020 1:00:00 PM          3/3/2020 1:01:00 PM
  3/4/2020 4:00:00 PM          3/4/2020 4:05:00 PM

Желаемый результат:

  ConnectedPST                 EndedPST

  3/3/2020 6:00:00 AM          3/3/2020 6:01:00 AM                    
  3/4/2020 9:00:00 AM          3/4/2020 9:05:00 AM

Структура:

   'Connected    Ended\n0  3/3/2020 1:00:00 PM  3/3/2020 1:01:00 PM\n1  3/4/2020     4:00:00 PM  3/4/2020 4:05:00 PM'

Что я пробовал:

 from datetime import datetime
 from pytz import timezone

 datetime_obj_pacific = timezone('US/Pacific').localize(datetime_obj_naive)
 print datetime_obj_pacific.strftime ("%Y-%m-%d %H:%M:%S %Z%z")

Однако я не уверен, как включить это в мой фрейм данных. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 24 апреля 2020

вы можете попробовать что-то вроде этого:

In [22]: import pandas as pd
    ...: d = pd.Series(['2020-04-23 19:57:55', '2020-04-23 19:59:46'])
    ...: d = pd.to_datetime(d)
    ...: d
    ...:
Out[22]:
0   2020-04-23 19:57:55
1   2020-04-23 19:59:46
dtype: datetime64[ns]

In [23]: d_pacific_tz_aware = d.dt.tz_localize("GMT").dt.tz_convert('America/Los_Angeles')

In [24]: d_pacific_tz_aware
Out[24]:
0   2020-04-23 12:57:55-07:00
1   2020-04-23 12:59:46-07:00
dtype: datetime64[ns, America/Los_Angeles]

In [25]: d_pacific_tz_naive = d.dt.tz_localize("GMT").dt.tz_convert('America/Los_Angeles').dt.tz_localize(None)

In [26]: d_pacific_tz_naive
Out[26]:
0   2020-04-23 12:57:55
1   2020-04-23 12:59:46
dtype: datetime64[ns]

Вам необходимо преобразовать столбец в формат datetime64 [ns] перед изменением часового пояса

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