首頁  >  文章  >  後端開發  >  如何將 Pandas 中的時區感知時間戳轉換為本地時間?

如何將 Pandas 中的時區感知時間戳轉換為本地時間?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-05 02:05:01311瀏覽

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

如何將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中文網其他相關文章!

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