Heim > Backend-Entwicklung > Python-Tutorial > Wie konvertiert man einen zeitzonenbewussten Pandas DateTimeIndex in naive Zeitstempel, ohne die Zeitzone zu ändern?

Wie konvertiert man einen zeitzonenbewussten Pandas DateTimeIndex in naive Zeitstempel, ohne die Zeitzone zu ändern?

Barbara Streisand
Freigeben: 2024-11-04 13:04:30
Original
1105 Leute haben es durchsucht

How to Convert a Timezone-Aware Pandas DateTimeIndex to Naive Timestamps Without Changing the Timezone?

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

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

    Oder verwenden Sie tz_convert(None), um die Zeitzone zu entfernen und in UTC zu konvertieren:

    <code class="python">t.tz_convert(None)</code>
    Nach dem Login kopieren
  • 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>
    Nach dem Login kopieren

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

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

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!

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