首頁 >後端開發 >Python教學 >如何在保留時區的同時將時區感知的 Pandas DateTimeIndex 轉換為樸素時間戳?

如何在保留時區的同時將時區感知的 Pandas DateTimeIndex 轉換為樸素時間戳?

Linda Hamilton
Linda Hamilton原創
2024-11-05 10:13:02448瀏覽

How to Convert Timezone-Aware Pandas DateTimeIndex to Naive Timestamps While Preserving Timezone?

將時區感知的Pandas DateTimeIndex 轉換為樸素時間戳,同時保留時區

簡介

Pandas 提供了tz_localize 函數,用於將時區資訊加到時間戳記和日期時間指數。然而,這裡的問題涉及反向操作:將時區感知時間戳轉換為天真的時間戳,同時保留原始時區。

轉換為天真的時間戳保留時區

從 Pandas 0.15.0 開始,已實現 tz_localize(None) 方法來促進此轉換。當應用於時區感知的 DateTimeIndex 時,它會刪除時區訊息,從而導致本地時間。

import pandas as pd

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

t_naive = t.tz_localize(None)  # Naive local time

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

額外轉換為 UTC

除了本地時間,您還可以轉換使用 tz_convert(None) 方法轉換為原始 UTC 時間。

t_utc_naive = t.tz_convert(None)  # Naive UTC time

print(t_utc_naive)
# Output:
# DatetimeIndex(['2013-05-18 10:00:00', '2013-05-18 11:00:00'], dtype='datetime64[ns]', freq='H')

效能注意事項

與使用 datetime.replace 解決方案相比,tz_localize(None) 方法非常有效率。對於較大的 DateTimeIndex,效能提升可能非常顯著。

以上是如何在保留時區的同時將時區感知的 Pandas DateTimeIndex 轉換為樸素時間戳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn