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')
除了本地時間,您還可以轉換使用 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中文網其他相關文章!