Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiert man in Pandas einen zeitzonenbewussten Zeitstempel in eine naive Ortszeit?

Wie konvertiert man in Pandas einen zeitzonenbewussten Zeitstempel in eine naive Ortszeit?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-05 02:05:01237Durchsuche

How to Convert a Timezone-Aware Timestamp to Naive Local Time in Pandas?

So konvertieren Sie einen zeitzonenbezogenen Zeitstempel in naive Ortszeit in Pandas

In Pandas wird die Funktion tz_localize verwendet, um einen Zeitstempel zu erstellen oder DateTimeIndex, der die Zeitzone berücksichtigt. Wenn Sie jedoch mit Daten arbeiten, die bereits die Zeitzone berücksichtigen, kann es erforderlich sein, sie wieder in einen naiven Zeitstempel umzuwandeln und gleichzeitig die Zeitzoneninformationen für die Ortszeit beizubehalten.

Eine Möglichkeit besteht darin, die Zeitzone auf „Keine“ festzulegen , aber dies führt dazu, dass die Zeit in UTC konvertiert wird. Um dies zu vermeiden, stellt Pandas die Funktion tz_localize(None) bereit, die die Zeitzoneninformationen effektiv entfernt und gleichzeitig die für den Benutzer sichtbare Zeit in der lokalen Zeitzone beibehält.

Bedenken Sie beispielsweise die folgende Zeitzone -aware DateTimeIndex:

t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels")

Mit tz_localize(None) können wir es in eine naive Ortszeit umwandeln:

t_naive_local = t.tz_localize(None)

Der resultierende Index wird die gleichen Zeiten wie zuvor haben, aber ohne die Zeitzoneninformationen:

t_naive_local

DatetimeIndex(['2013-05-18 12:00:00', '2013-05-18 13:00:00'],
               dtype='datetime64[ns]', freq='H')

Zusätzlich stellt Pandas auch die Funktion tz_convert(None) bereit, die die Zeitzoneninformationen entfernt und die Zeit in UTC umwandelt, was zu einer naiven UTC-Zeit führt.

Diese Konvertierung ist wesentlich effizienter als der alternative Ansatz der Verwendung der datetime.replace-Methode, wie die folgenden Zeitabläufe zeigen:

%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

Durch die Nutzung dieser Funktionen ist die Konvertierung einfach Zeitzonenbewusste Pandas-Daten in naive Ortszeit oder UTC umwandeln, wodurch die für den Benutzer sichtbare Zeit erhalten bleibt und die Effizienz der Datenverarbeitung verbessert wird.

Das obige ist der detaillierte Inhalt vonWie konvertiert man in Pandas einen zeitzonenbewussten Zeitstempel in eine naive Ortszeit?. 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