Heim > Artikel > Backend-Entwicklung > Wie konvertiere ich einen Pandas Timezone-Aware DateTimeIndex in einen naiven Zeitstempel in einer bestimmten Zeitzone?
Konvertieren Sie den zeitzonenbezogenen DateTimeIndex von Pandas in einen naiven Zeitstempel in der angegebenen Zeitzone
Pandas bietet die Funktion tz_localize zum Erstellen eines zeitzonenbezogenen Zeitstempels oder DateTimeIndex . Was aber, wenn Sie diesen Vorgang rückgängig machen möchten? Wie konvertiert man einen zeitzonenbewussten Zeitstempel in einen naiven, ohne seine Zeitzone zu ändern?
Problem:
Betrachten wir einen zeitzonenbewussten DateTimeIndex:
<code class="python">t = pd.date_range(start="2013-05-18 12:00:00", periods=10, freq='s', tz="Europe/Brussels")</code>
Wenn Sie die Zeitzone auf „Keine“ setzen, wird die Zeitzone entfernt, aber die Zeitstempel werden in UTC konvertiert, wodurch sich die sichtbare Zeit ändert.
Lösung (Pandas 0.15.0):
Seit Pandas 0.15.0 kann die Methode tz_localize verwendet werden, um die Zeitzone auf „Keine“ zu setzen. Dadurch werden die Zeitzoneninformationen entfernt und gleichzeitig die Ortszeit beibehalten:
<code class="python">t.tz_localize(None)</code>
Dies führt zu einem naiven Ortszeit-DateTimeIndex.
Alternativ kann tz_convert(None) zur Konvertierung in die naive UTC-Zeit verwendet werden :
<code class="python">t.tz_convert(None)</code>
Leistungsüberlegungen:
Die Methode tz_localize(None) ist wesentlich effizienter als die Verwendung einer Schleife zum Ersetzen der Zeitzoneninformationen:
<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>
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Pandas Timezone-Aware DateTimeIndex in einen naiven Zeitstempel in einer bestimmten Zeitzone?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!