Heim > Backend-Entwicklung > Python-Tutorial > 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
Freigeben: 2024-11-04 12:18:30
Original
982 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage