首頁 > 後端開發 > Python教學 > 如何在不更改時區的情況下將時區感知的 Pandas DateTimeIndex 轉換為樸素時間戳?

如何在不更改時區的情況下將時區感知的 Pandas DateTimeIndex 轉換為樸素時間戳?

Barbara Streisand
發布: 2024-11-04 13:04:30
原創
1108 人瀏覽過

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

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

問題:

如何轉換具有時區感知能力的pandas時間戳或DateTimeIndex 為天真的而不修改其時區?

原始程式碼:

使用tz = None 刪除時區,但也會將時間轉換為UTC:

<code class="python">t.tz = None</code>
登入後複製

建議解:

  • 從pandas 0.15.0 開始:

    使用tz_localize(None) 刪除時區

    <code class="python">t.tz_localize(None)</code>
    登入後複製
    或使用tz_convert(None) 刪除時區並轉換為UTC:

    <code class="python">t.tz_convert(None)</code>
    登入後複製
  • Pre-pandas 0.15.0:Pre-pandas 0.15.0:

    Pre-pandas 0.15.0:0.15.

    <code class="python">pd.DatetimeIndex([i.replace(tzinfo=None) for i in t])</code>
    登入後複製
    手動取代使用清單理解的None 時區資訊。但是,此方法的效率低於內建方法。

示例:
<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>
登入後複製

輸出:
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')
登入後複製

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板