Как изменить часовой пояс всей колонки? - PullRequest
0 голосов
/ 10 мая 2018

У меня есть датафрейм панд как таковой:

           Date      Time     Open     High      Low    Close  Volume  OpenInt
0    2017-11-17  15:35:00  68.5300  68.7200  68.3800  68.6700   79411        0
1    2017-11-17  15:40:00  68.5956  68.6900  68.5600  68.5900   10014        0
2    2017-11-17  15:45:00  68.5700  68.6700  68.5100  68.6200   14182        0
3    2017-11-17  15:50:00  68.5900  68.6200  68.4900  68.5800   15756        0
4    2017-11-17  15:55:00  68.5500  68.6100  68.5100  68.5500   15984        0

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Предполагая, что Date и Time имеют object dtype:

In [54]: df['Date'] = (pd.to_datetime(df['Date'] + ' ' + df.pop('Time'))
                         .dt.tz_localize('Israel')
                         .dt.tz_convert('UTC'))

In [55]: df
Out[55]:
                       Date     Open   High    Low  Close  Volume  OpenInt
0 2017-11-17 13:35:00+00:00  68.5300  68.72  68.38  68.67   79411        0
1 2017-11-17 13:40:00+00:00  68.5956  68.69  68.56  68.59   10014        0
2 2017-11-17 13:45:00+00:00  68.5700  68.67  68.51  68.62   14182        0
3 2017-11-17 13:50:00+00:00  68.5900  68.62  68.49  68.58   15756        0
4 2017-11-17 13:55:00+00:00  68.5500  68.61  68.51  68.55   15984        0
0 голосов
/ 10 мая 2018

Может быть, это работает для вас

>>> new_dt = pd.to_datetime(df2.Date + " " + df2.Time).dt.tz_localize('Israel').dt.tz_convert('UTC')
>>> df.Date = new_dt.transform(lambda k:k.date())
>>> df.Time = new_dt.transform(lambda k:k.time())


        Date    Time        Open    High    Low     Close   Volume  OpenInt DateTime
0   2017-11-17  13:35:00    68.5300 68.72   68.38   68.67   79411   0   2017-11-17 15:35:00
1   2017-11-17  13:40:00    68.5956 68.69   68.56   68.59   10014   0   2017-11-17 15:40:00
2   2017-11-17  13:45:00    68.5700 68.67   68.51   68.62   14182   0   2017-11-17 15:45:00
3   2017-11-17  13:50:00    68.5900 68.62   68.49   68.58   15756   0   2017-11-17 15:50:00
4   2017-11-17  13:55:00    68.5500 68.61   68.51   68.55   15984   0   2017-11-17 15:55:00

Разница в том, что вы можете сохранить и столбцы Date, и Time.

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