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 ?

Comment convertir des Pandas DateTimeIndex prenant en compte le fuseau horaire en horodatages naïfs tout en préservant le fuseau horaire ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-05 10:13:02400parcourir

How to Convert Timezone-Aware Pandas DateTimeIndex to Naive Timestamps While Preserving Timezone?

Convertir l'index DateTimeIndex Pandas prenant en compte le fuseau horaire en horodatages naïfs tout en préservant le fuseau horaire

Introduction

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.

Conversion en horodatages naïfs préservant le fuseau horaire

À 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')

Conversion supplémentaire en UTC

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')

Considérations sur les performances

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn