如何將Pandas 中的時區感知時間戳轉換為本地時間
在pandas 中,tz_localize 函數用於建立時間戳或時區感知的DateTimeIndex。但是,在處理已經識別時區的資料時,可能需要將其轉換回原始時間戳,同時保留本地時間的時區資訊。
一個選項是將時區設為 None ,但這會導致時間轉換為 UTC。為了避免這種情況,pandas 提供了 tz_localize(None) 函數,該函數可以有效地刪除時區信息,同時保留本地時區中用戶可見的時間。
例如,考慮以下時區-aware DateTimeIndex:
t = pd.date_range(start="2013-05-18 12:00:00", periods=2, freq='H', tz="Europe/Brussels")
使用tz_localize(None),我們可以將其轉換為本地時間:
t_naive_local = t.tz_localize(None)
生成的索引將具有與之前相同的時間,但沒有時區資訊:
t_naive_local DatetimeIndex(['2013-05-18 12:00:00', '2013-05-18 13:00:00'], dtype='datetime64[ns]', freq='H')
此外,pandas 還提供了tz_convert(None) 函數,該函數刪除時區資訊並將時間轉換為UTC,從而得到樸素的UTC 時間。
這種轉換比使用datetime.replace 方法的替代方法要高效得多,如以下時間所示:
%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
透過利用這些函數,可以輕鬆進行轉換將時區感知的pandas 資料轉換為本地時間或UTC,保留使用者可見的時間並提高資料處理的效率。
以上是如何將 Pandas 中的時區感知時間戳轉換為本地時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!