Maison > développement back-end > Tutoriel Python > Comment convertir un Pandas DateTimeIndex prenant en compte le fuseau horaire en horodatages naïfs sans changer le fuseau horaire ?

Comment convertir un Pandas DateTimeIndex prenant en compte le fuseau horaire en horodatages naïfs sans changer le fuseau horaire ?

Barbara Streisand
Libérer: 2024-11-04 13:04:30
original
1098 Les gens l'ont consulté

How to Convert a Timezone-Aware Pandas DateTimeIndex to Naive Timestamps Without Changing the Timezone?

Comment convertir un DateTimeIndex Pandasonic prenant en compte le fuseau horaire en horodatages naïfs tout en préservant le fuseau horaire

Problème :

Comment pouvez-vous convertir un horodatage ou un DateTimeIndex pandas prenant en compte le fuseau horaire en un naïf sans modifier son fuseau horaire ?

Code original :

L'utilisation de tz = None supprime le fuseau horaire mais convertit également l'heure en UTC :

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

Solution suggérée :

  • À partir de pandas 0.15.0 :

    Utilisez tz_localize(None) pour supprimer le fuseau horaire, ce qui donne une heure locale naïve :

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

    Ou utilisez tz_convert(None) pour supprimer le fuseau horaire et convertir en UTC :

    <code class="python">t.tz_convert(None)</code>
    Copier après la connexion
  • Pré-pandas 0.15.0 :

    Remplacez manuellement les informations de fuseau horaire par Aucun à l'aide d'une compréhension de liste. Cependant, cette méthode est moins efficace que les méthodes intégrées.

    <code class="python">pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])</code>
    Copier après la connexion

Exemple :

<code class="python">t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels")

# Using 'tz_localize(None)'
t_naive_local = t.tz_localize(None)

# Using 'tz_convert(None)'
t_naive_utc = t.tz_convert(None)

print(t_naive_local)
print(t_naive_utc)</code>
Copier après la connexion

Sortie :

DatetimeIndex(['2013-05-18 12:00:00', '2013-05-18 13:00:00'], dtype='datetime64[ns]', freq='H')
DatetimeIndex(['2013-05-18 10:00:00', '2013-05-18 11:00:00'], dtype='datetime64[ns]', freq='H')
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