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!