Estou trabalhando com dataframes do pandas contendo datas e horas locais (chilenas), por exemplo :
horário local |
---|
09/02/2023 23h33 |
09/02/2023 23:39 |
09/03/2023 13:00 |
09/03/2023 1:08 |
Eu costumava converter essas datas e horários para UTC aplicando um deslocamento de horário em massa ( pd.Timedelta(4, "h")
) à minha coluna local_time , mas agora gostaria de levar em conta as alterações no horário de verão.
Comecei a usar tz_location
para especificar o fuso horário antes de converter para UTC usando tz_convert
:
import pandas as pd
from datetime import datetime
df = pd.read_csv("Example_dataset.csv")
pd.to_datetime(pd.to_datetime(df['local_time']).apply(lambda x: datetime.strftime(x, '%d-%m-%Y %H:%M:%S'))).dt.tz_localize('America/Santiago').dt.tz_convert('UTC')
Isso parece funcionar no conjunto de dados de exemplo fornecido aqui: os dados de 2 de setembro de 2023 são alterados em 4 horas, enquanto os de 3 de setembro são alterados em 3 horas.
0 2023-09-03 03:33:00+00:00
1 2023-09-03 03:39:00+00:00
2 2023-09-03 04:00:00+00:00
3 2023-09-03 04:08:00+00:00
Esta é a maneira correta de proceder ou estou faltando alguma coisa aqui?
Você precisa localizar e depois converter: