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
Barbara Streisandoriginal
2024-11-04 13:04:301113parcourir

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>

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>

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

    <code class="python">t.tz_convert(None)</code>
  • 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>

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>

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

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