Maison > développement back-end > Tutoriel Python > Comment convertir un DateTimeIndex compatible avec le fuseau horaire Pandas en un horodatage naïf dans un fuseau horaire spécifique ?

Comment convertir un DateTimeIndex compatible avec le fuseau horaire Pandas en un horodatage naïf dans un fuseau horaire spécifique ?

Mary-Kate Olsen
Libérer: 2024-11-04 12:18:30
original
987 Les gens l'ont consulté

How to Convert a Pandas Timezone-Aware DateTimeIndex to a Naive Timestamp in a Specific Timezone?

Convertir Pandas Timezone-Aware DateTimeIndex en horodatage naïf dans le fuseau horaire spécifié

Pandas propose la fonction tz_localize pour créer un horodatage ou un DateTimeIndex prenant en compte le fuseau horaire . Mais que faire si vous souhaitez annuler cette opération ? Comment convertir un horodatage prenant en compte le fuseau horaire en un horodatage naïf sans modifier son fuseau horaire ?

Problème :

Considérons un DateTimeIndex prenant en compte le fuseau horaire :

<code class="python">t = pd.date_range(start="2013-05-18 12:00:00", periods=10, freq='s', tz="Europe/Brussels")</code>
Copier après la connexion

Régler le fuseau horaire sur Aucun supprime le fuseau horaire mais convertit les horodatages en UTC, modifiant l'heure visible.

Solution (Pandas 0.15.0) :

Depuis Pandas 0.15.0, la méthode tz_localize peut être utilisée pour définir le fuseau horaire sur Aucun. Cela supprime les informations de fuseau horaire tout en préservant l'heure locale :

<code class="python">t.tz_localize(None)</code>
Copier après la connexion

Cela donne une heure locale naïve DateTimeIndex.

Alternativement, tz_convert(None) peut être utilisé pour convertir en heure UTC naïve :

<code class="python">t.tz_convert(None)</code>
Copier après la connexion

Performances Considérations :

La méthode tz_localize(None) est nettement plus efficace que l'utilisation d'une boucle pour remplacer les informations de fuseau horaire :

<code class="python">%timeit t.tz_localize(None)
1000 loops, best of 3: 233 µs per loop

%timeit pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])
10 loops, best of 3: 99.7 ms per loop</code>
Copier après la connexion

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