Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-11-05 10:13:02
original
414 Les gens l'ont consulté

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')
Copier après la connexion

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')
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal