Как изменить часовой пояс всего столбца?

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

           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. Каков самый простой и быстрый способ сделать это для всех строк с этим столбцом? Мне нужно повторять это много раз, к вашему сведению.

Спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
59
2

Ответы 2

Может это сработает для тебя

>>> 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.

Вам нужно учитывать как дату, так и время, поскольку изменение часового пояса может произойти за полночь, изменив дату.

tdelaney 09.05.2018 23:46

Предполагая, что Date и Time относятся к object d-типу:

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

Другие вопросы по теме