Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiere ich einen Pandas Timezone-Aware DateTimeIndex in einen naiven Zeitstempel in einer bestimmten Zeitzone?

Wie konvertiere ich einen Pandas Timezone-Aware DateTimeIndex in einen naiven Zeitstempel in einer bestimmten Zeitzone?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-04 12:18:30889Durchsuche

How to Convert a Pandas Timezone-Aware DateTimeIndex to a Naive Timestamp in a Specific Timezone?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn