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>
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>
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>
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>
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!