Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiert man einen zeitzonenbewussten Pandas DateTimeIndex in naive Zeitstempel, ohne die Zeitzone zu ändern?
So konvertieren Sie Pandasonic Timezone-Aware DateTimeIndex in naive Zeitstempel unter Beibehaltung der Zeitzone
Problem:
Wie können Sie einen zeitzonenbewussten Pandas-Zeitstempel oder DateTimeIndex in einen naiven konvertieren, ohne seine Zeitzone zu ändern?
Originalcode:
Mit tz = None wird der entfernt Zeitzone, konvertiert aber auch die Zeit in UTC:
<code class="python">t.tz = None</code>
Vorgeschlagene Lösung:
Ab Pandas 0.15.0 aufwärts:
Verwenden Sie tz_localize(None), um die Zeitzone zu entfernen, was zu einer naiven Ortszeit führt:
<code class="python">t.tz_localize(None)</code>
Oder verwenden Sie tz_convert(None), um die Zeitzone zu entfernen und in UTC zu konvertieren:
<code class="python">t.tz_convert(None)</code>
Pre-Pandas 0.15.0:
Ersetzen Sie die Zeitzoneninformationen mithilfe eines Listenverständnisses manuell durch „Keine“. Diese Methode ist jedoch weniger effizient als die integrierten Methoden.
<code class="python">pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])</code>
Beispiel:
<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>
Ausgabe :
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')
Das obige ist der detaillierte Inhalt vonWie konvertiert man einen zeitzonenbewussten Pandas DateTimeIndex in naive Zeitstempel, ohne die Zeitzone zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!