Maison > Article > développement back-end > Comment convertir des Pandas DateTimeIndex prenant en compte le fuseau horaire en horodatages naïfs tout en préservant le fuseau horaire ?
Pandas fournit la fonction tz_localize pour ajouter des informations de fuseau horaire aux horodatages et à la date/heure. indices. Cependant, la question ici concerne l'opération inverse : convertir les horodatages prenant en compte le fuseau horaire en horodatages naïfs tout en conservant le fuseau horaire d'origine.
À partir de Pandas 0.15.0, la méthode tz_localize(None) a été implémentée pour faciliter cette conversion. Lorsqu'il est appliqué à un DateTimeIndex prenant en compte le fuseau horaire, il supprime les informations de fuseau horaire, ce qui entraîne une heure locale naïve.
import pandas as pd t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels") t_naive = t.tz_localize(None) # Naive local time print(t_naive) # Output: # DatetimeIndex(['2013-05-18 12:00:00', '2013-05-18 13:00:00'], dtype='datetime64[ns]', freq='H')
En plus de l'heure locale, vous pouvez également convertir à l'heure UTC naïve à l'aide de la méthode tz_convert(None).
t_utc_naive = t.tz_convert(None) # Naive UTC time print(t_utc_naive) # Output: # DatetimeIndex(['2013-05-18 10:00:00', '2013-05-18 11:00:00'], dtype='datetime64[ns]', freq='H')
La méthode tz_localize(None) est très efficace par rapport à l'utilisation de la solution datetime.replace. Pour un DateTimeIndex volumineux, le gain de performances peut être significatif.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!